<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>MooTools</title><link>/blog</link><atom:link href="/blog/blog/feed" rel="self" type="application/rss+xml"></atom:link><description>MooTools blog</description><language>en-US</language><lastBuildDate>Thu, 14 Jan 2016 12:00:00 GMT</lastBuildDate><item><title>1.6.0 is out!</title><link>/blog/2016/01/14/mootools-1-6-0-release</link><dc:creator><![CDATA[
Sérgio Crisóstomo
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today marks the release of MooTools Core and More versions <code>1.6.0</code>. This is a <em>minor</em> revision that delivers a number of bug fixes as well as the introduction of new features.</p>
<p>The main new adition is Class.Thenable which is a new Class mixin that can be used in Promise style flows by using its <code>then</code> method. When implemented in a Class, it makes the class &quot;thenable&quot; in the <a href="https://promisesaplus.com/" alt="Promises/A+">Promises/A+</a> sense of the word, meaning it can be used in Promise style flows by using its <code>then</code> method.</p>
<p>The implementation, however, is more than just a &quot;then&quot; method. Any instance of a Class implementing <code>Class.Thenable</code> is a <code>Promises/A+</code> compliant object (generally referred to as &quot;a Promise&quot;) with only one exception: it is possible to reset the Class&#39;s value resolution state fully (rejecting pending reactions, and starting empty) to support a Class instance living for longer than just the lifetime of one value resolution.</p>
<p>Example using Request:</p>
<pre><code class="javascript"><span class="keyword">var</span> request = <span class="keyword">new</span> Request();
request.send().then(<span class="keyword">function</span>(response){ console.log(response.text); });</code></pre><p>Example hooking into a native Promise:</p>
<pre><code class="javascript"><span class="keyword">var</span> request = <span class="keyword">new</span> Request();
<span class="keyword">var</span> promise = Promise.resolve(request);
request.send();
promise.then(<span class="keyword">function</span>(response){ console.log(response.text); });</code></pre><p>You can find this new version <code>1.6.0</code> in the website or within the <code>dist</code> folder of the <code>1.6.0</code> tag (Core).  </p>
<div class="heading clearfix"><h3>Warnings:</h3></div><p><strong>IE warning:</strong> This will be the last version to support old IE browsers. Next <em>minor</em> and/or <em>major</em> versions should be only IE11+ compatible. We might still release some <em>patch</em> in the <code>1.6.x</code> version if needed.</p>
<p><strong>Array.from deprecated, now called Array.convert:</strong> Following the conclusion of the ES6 specs we know now that <code>Array.from</code> will have a different implementation than the one MooTools uses.<br>Because of this we renamed <code>Array.from</code> to <code>Array.convert</code> to not overwrite the Native implementation.<br>We kept it as it was though in the <em>compat layer</em> for compatibility reasons if you really to use it still.  </p>
<p>To keep the API consistency we changed also the name of the method in <code>Function</code>, <code>Number</code> and <code>String</code> Types.</p>
<hr>
<p>The main changes in this release are:</p>
<div class="heading clearfix"><h4>Core:</h4></div><ul>
<li>Rename <code>.from</code> method in Array, Function, String and Number <a href="https://github.com/mootools/mootools-more/pull/2758" alt="(#2758)">(#2758)</a><a href="https://github.com/mootools/mootools-more/pull/2760" alt="(#2760)">(#2760)</a></li>
<li>New feature: Class.Thenable <a href="https://github.com/mootools/mootools-more/pull/2743" alt="(#2743)">(#2743)</a></li>
<li>Add Safari 9 to Sauce Labs tested browsers <a href="https://github.com/mootools/mootools-core/pull/2749" alt="(#2749)">(#2749)</a></li>
<li>Added ESLint to Grunt specs to keep code styled and clean <a href="https://github.com/mootools/mootools-core/pull/2748" alt="(#2748)">(#2748)</a></li>
<li>Gruntfile refactor <a href="https://github.com/mootools/mootools-core/pull/2741" alt="(#2741)">(#2741)</a></li>
<li>MooTools specs goes Mocha <a href="https://github.com/mootools/mootools-core/pull/2737" alt="(#2737)">(#2737)</a></li>
<li>Specs upgrade, refactor and cleanup. Huge specs cleanup by Tim <a href="https://github.com/mootools/mootools-core/pull/2736" alt="(#2736)">(#2736)</a></li>
<li>Fix so the legacy <code>$pick</code> gets exported to global  <a href="https://github.com/mootools/mootools-core/pull/2735" alt="(#2735)">(#2735)</a></li>
<li>Fix so <code>Event</code> Class gets exported to global  <a href="https://github.com/mootools/mootools-core/pull/2733" alt="(#2733)">(#2733)</a></li>
</ul>
<div class="heading clearfix"><h4>More:</h4></div><ul>
<li>Add extra aliases to Assets package&#39;s description <a href="https://github.com/mootools/mootools-more/pull/1335" alt="(#1335)">(#1335)</a></li>
<li>Added ESLint to Grunt specs to keep code styled and clean <a href="https://github.com/mootools/mootools-more/pull/1327" alt="(#1327)">(#1327)</a></li>
<li>New feature: new option <code>keepOpen</code> to Accordion <a href="https://github.com/mootools/mootools-more/pull/1333" alt="(#1333)">(#1333)</a></li>
<li>New feature: added sort order to <code>onSort</code> function arguments <a href="https://github.com/mootools/mootools-more/pull/1332" alt="(#1332)">(#1332)</a></li>
<li>Fix String.extras regex to not mix self closing tags <a href="https://github.com/mootools/mootools-more/pull/1328" alt="(#1328)">(#1328)</a></li>
<li>Fix <code>validate-match</code> &quot;matchName&quot; when containing spaces<a href="https://github.com/mootools/mootools-more/pull/1186" alt="(#1186)">(#1186)</a></li>
<li>Fix <code>unDraggableTags</code> in Drag <a href="https://github.com/mootools/mootools-more/pull/1159" alt="(#1159)">(#1159)</a></li>
<li>Fix to <code>validate-reqchk-byname</code> <a href="https://github.com/mootools/mootools-more/pull/1329" alt="(#1329)">(#1329)</a></li>
<li>New feature: added IPv6 compatibility to URI.regex  <a href="https://github.com/mootools/mootools-more/pull/1322" alt="(#1322)">(#1322)</a></li>
<li>Fix semicolon in end of file that broke packager <a href="https://github.com/mootools/mootools-more/pull/1319" alt="(#1319)">(#1319)</a></li>
</ul>

]]></description><pubDate>Thu, 14 Jan 2016 12:00:00 GMT</pubDate><guid isPermaLink="true">/blog/2016/01/14/mootools-1-6-0-release</guid></item><item><title>1.5.2 is out!</title><link>/blog/2015/09/13/mootools-1-5-2-release</link><dc:creator><![CDATA[
Sérgio Crisóstomo
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we release MooTools Core versions 1.5.2. In this new version there are some fixes for raised issues and also some new stuff!</p>
<p>You can find the new version in the <code>dist/</code> folder of the Github repo or on the website.</p>
<p>The main things in this release are:</p>
<div class="heading clearfix"><h4>Core:</h4></div><ul>
<li>Fix &quot;Unspecified Error&quot; in IE when calling getSize() on a node that isn&#39;t in the DOM <a href="https://github.com/mootools/mootools-core/pull/2648" alt="(#2648)">(#2648)</a></li>
<li>fix IE version detection in old IE <a href="https://github.com/mootools/mootools-core/pull/2653" alt="(#2653)">(#2653)</a></li>
<li>Protect &#39;contains&#39; method in Array prototype <a href="https://github.com/mootools/mootools-core/pull/2654" alt="(#2654)">(#2654)</a></li>
<li>Fix httpOnly cookies <a href="https://github.com/mootools/mootools-core/pull/2676" alt="(#2676)">(#2676)</a></li>
<li>Fix Garbage Collect typo in Element Docs <a href="https://github.com/mootools/mootools-core/commit/e4a340b33a2462419cd320519203404a766578ba" alt="(link)">(link)</a></li>
<li>Fix mouseenter/mouseleave Readme where info was incorrectly placed below mousewheel <a href="https://github.com/mootools/mootools-core/pull/2681" alt="(#2681)">(#2681)</a></li>
<li>Fix camelCasing of -ms- prefixed properties in Element.Styles <a href="https://github.com/mootools/mootools-core/pull/2686" alt="(#2686)">(#2686)</a></li>
<li>Fix visibility when fade is chained <a href="https://github.com/mootools/mootools-core/pull/2597" alt="(#2597)">(#2597)</a></li>
<li>Fix event.key for keypress <a href="https://github.com/mootools/mootools-core/commit/1781fa014d2e6b4eb089210d8710f7e13f9b297f" alt="(link)">(link)</a></li>
<li>Fix non-enumerables iteration in old IE <a href="https://github.com/mootools/mootools-core/pull/2696" alt="(#2696)">(#2696)</a></li>
<li>Move Object.keys to Core.js, upgrade for in loops <a href="https://github.com/mootools/mootools-core/pull/2696" alt="(#2696)">(#2696)</a></li>
<li>Add pageshow and pagehide events <a href="https://github.com/mootools/mootools-core/pull/2701" alt="(#2701)">(#2701)</a></li>
<li>Fix for typeOf ($family property), when a Class extends a Native Type <a href="https://github.com/mootools/mootools-core/pull/2688" alt="(#2688)">(#2688)</a></li>
<li>Fix mapping of shift onkeypress <a href="https://github.com/mootools/mootools-core/pull/2703" alt="(#2703)">(#2703)</a></li>
<li>Fix relatedTarget in mouseenter and mouseleave <a href="https://github.com/mootools/mootools-core/pull/2697" alt="(#2697)">(#2697)</a></li>
<li>Fix warning for <code>input[type=&quot;email&quot;]</code> <a href="https://github.com/mootools/mootools-core/pull/2705" alt="(#2705)">(#2705)</a></li>
<li>Fix Microsoft Edge UA string support to Browser <a href="https://github.com/mootools/mootools-core/pull/2716" alt="(#2716)">(#2716)</a></li>
<li>Fixed broken links in docs <a href="https://github.com/mootools/mootools-core/pull/2728" alt="(#2728)">(#2728)</a></li>
<li>Fixed wrong offset calculation because of floating point values <a href="https://github.com/mootools/mootools-core/pull/2437" alt="(#2437)">(#2437)</a></li>
<li>Added tests for <a href="https://iojs.org/en/index.html" alt="io.js">io.js</a> and <a href="https://nodejs.org/" alt="Node.js">Node.js</a> versions (0.10 and 0.12) for Mootools Server version <a href="https://github.com/mootools/mootools-core/pull/2729" alt="(#2729)">(#2729)</a></li>
</ul>
<div class="heading clearfix"><h4>More:</h4></div><ul>
<li>New feature: Class.Singleton <a href="https://github.com/mootools/mootools-more/pull/1285" alt="(#1285)">(#1285)</a></li>
<li>Fix tooltip to not show when empty <a href="https://github.com/mootools/mootools-more/pull/1299" alt="(#1299)">(#1299)</a></li>
<li>Added more Norwegian, Swiss, Argentinian translations</li>
<li>Fix String.QueryString when converting <code>+</code> into spaces <a href="https://github.com/mootools/mootools-more/pull/1313" alt="(#1313)">(#1313)</a></li>
<li>Fix module definition of Drag, Slider, Sortables, and others to be consistent with others <a href="https://github.com/mootools/mootools-more/pull/1311" alt="(#1311)">(#1311)</a></li>
<li>Add touch events to Drag <a href="https://github.com/mootools/mootools-more/pull/1292" alt="(#1292)">(#1292)</a></li>
<li>Remove old callbacks in Request.JSONP.request_map <a href="https://github.com/mootools/mootools-more/pull/1315" alt="(#1315)">(#1315)</a></li>
</ul>

]]></description><pubDate>Sun, 13 Sep 2015 12:25:41 GMT</pubDate><guid isPermaLink="true">/blog/2015/09/13/mootools-1-5-2-release</guid></item><item><title>1.5.1 is out!</title><link>/blog/2014/08/29/mootools-1-5-1-release</link><dc:creator><![CDATA[
Sérgio Crisóstomo
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we release MooTools Core and More versions 1.5.1. This continues our improvement work for both Core and More and introduces also some features that were in the queue for being added. This release fixes also a regression related to the mousewheel event.<br>When preparing the 1.5 release we decided that Core 1.5.x will work with More 1.5.x. This means that, inside the 1.5 space, versions should be compatible and you might be seeing Core or More releases that are not simultaneous. </p>
<p>In 1.5.1 we added a new <code>dist/</code> folder in Core, present at the <a href="https://github.com/mootools/mootools-core/tree/1.5.1" title="dist folder" target="_blank">tagged commit</a>, for those who want the Core source, as well as a needed update so you can get MooTools via <a href="http://bower.io/" alt="Bower">Bower</a>.</p>
<p>Worth a notice is also the new <a href="https://github.com/ibolmo/grunt-mootools-packager" alt="MooTools Packager">MooTools Packager</a>. MooTools has always been about modularity, and for those of you that want to choose which modules to use you can now use the new MooTools Packager (for Node.js/Grunt), as well as the website builder. The new Packager allows to compile source files from the dependencies in the YAML header. You can find it on <a href="https://github.com/ibolmo/grunt-mootools-packager" alt="GitHub">GitHub</a> and <a href="https://www.npmjs.org/package/grunt-mootools-packager" alt="NPM">NPM</a>.</p>
<p>The main things in this release are:</p>
<div class="heading clearfix"><h4>Core:</h4></div><ul>
<li>Mousewheel regression fix for Chrome and Firefox. (<a href="https://github.com/mootools/mootools-core/commit/20ed69135451d9c3c80784ea040d67375c943010" target="_blank">link</a>)</li>
<li>DOMEvent&#39;s wheel property now listens for DOM3 wheel event also. (<a href="https://github.com/mootools/mootools-core/commit/20ed69135451d9c3c80784ea040d67375c943010" target="_blank">link</a>)</li>
<li>IE8 iFrame leak fix. (<a href="https://github.com/mootools/mootools-core/commit/1d38828bbdea786390a386b8500b186cece2c8db" target="_blank">link</a>)</li>
<li>Added postMessage to NativeEvents. (<a href="https://github.com/mootools/mootools-core/commit/e01fdc18aebb73ef48424415e94a3ef92486ead2" target="_blank">link</a>)</li>
<li>Fixed setter so IE7/8 can set text of style element. (<a href="https://github.com/mootools/mootools-core/commit/d1dce0f25dbd69b14572fe264393139730844b98" target="_blank">link</a>)</li>
<li>Normalize values on newElement for radio and checkbox types. (<a href="https://github.com/mootools/mootools-core/commit/b8307071fc950623c4f7804ade716f168152dc75" target="_blank">link</a>)</li>
<li>Fixed svg element size. (<a href="https://github.com/mootools/mootools-core/commit/6837e04a89c2358dc4d2c52e59f7bc72964ea628" target="_blank">link</a>)</li>
<li>Fixed getter behavior for border-radius. (<a href="https://github.com/mootools/mootools-core/commit/9e4919750a7baff8a94d8e8efdf60f91aaf2da64" target="_blank">link</a>)</li>
<li>Added fix for IE8 to be able to set html into style element. (<a href="https://github.com/mootools/mootools-core/commit/94a64bc75f05598126881d482cca98563cd77d38" target="_blank">link</a>)</li>
<li>Added option to trigger xhr.withCredentials without http auth. (<a href="https://github.com/mootools/mootools-core/commit/ccc36c24b20878e6b76d243beab1a4ebab38e33d" target="_blank">link</a>)</li>
<li>Added the PATCH and HEAD methods to Request. (<a href="https://github.com/mootools/mootools-core/commit/2c72ef2f0f9fdb54e94da825dae2b6bb42da6b5e" target="_blank">link</a>)</li>
<li>Fixed hasClass without classList to comply with ES6. (<a href="https://github.com/mootools/mootools-core/commit/6808764ca3d8e0faf41f6ceff6b1ba9e3f95cc03" target="_blank">link</a>)</li>
<li>Added fix for IE9 when setting an input type to &quot;email&quot;. (<a href="https://github.com/mootools/mootools-core/commit/d16b5b2e23a56d3e19ec0943c487a6a18c47e804" target="_blank">link</a>)</li>
<li>Fix for IE when removing delegated &quot;submit&quot; event from destroyed element. (<a href="https://github.com/mootools/mootools-core/commit/d2fc72bc9ff2f063e011d4c7b0b4b90452b35301" target="_blank">link</a>)</li>
<li>Updates in Docs.</li>
</ul>
<div class="heading clearfix"><h4>More:</h4></div><ul>
<li>Drag position calculation fix. (<a href="https://github.com/mootools/mootools-more/commit/a586f51d264b07ca932e9f07d6a5de5e06a1920e" target="_blank">link</a>) </li>
<li>Form.Validator.Extras credit card regex update. (<a href="https://github.com/mootools/mootools-more/commit/43a2d890734d391f742bc4eb1240262ff3da2a7d" target="_blank">link</a>)</li>
<li>Fix Scroller Class to be able to use window as element. (<a href="https://github.com/mootools/mootools-more/commit/5f82f73673d0d491741a5beca5585ebb5a7773a5" target="_blank">link</a>)</li>
<li>Added custom sort function for HtmlTable.Sort. (<a href="https://github.com/mootools/mootools-more/commit/743a34defa26945fc7ea633a1c766bd9eb731b25" target="_blank">link</a>)</li>
<li>Fixed Type error for empty string in Form.Validator. (<a href="https://github.com/mootools/mootools-more/commit/94bf5a95704434a828fe6fbac6abdeb169f85fce" target="_blank">link</a>)</li>
<li>Added onLoad callback for local and cross-origin CSS assets. (<a href="https://github.com/mootools/mootools-more/commit/d0d5712cb918948cd18ae4672f51f1556a0b47ed" target="_blank">link</a>)</li>
<li>Fixed sort regex to respect sci-notated floated numbers in HtmlTable.Sort. (<a href="https://github.com/mootools/mootools-more/commit/bf8b5de63569fb7420c831066dbf777c9b725731" target="_blank">link</a>)</li>
<li>Fixed scroll miss-placement while dragging and scrolling. (<a href="https://github.com/mootools/mootools-more/commit/b2a1efaa7807efd9b37a4f58bf9e4795bd299a0c" target="_blank">link</a>)</li>
<li>Updates in Docs.</li>
</ul>

]]></description><pubDate>Fri, 29 Aug 2014 12:25:41 GMT</pubDate><guid isPermaLink="true">/blog/2014/08/29/mootools-1-5-1-release</guid></item><item><title>MooTools Core and More 1.5 are here! </title><link>/blog/2014/05/19/mootools-1-5-is-here</link><dc:creator><![CDATA[
Sérgio Crisóstomo
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<div class="heading clearfix"><h5>More stable and well tested than ever</h5></div><p>1.5 is a HUGE bug fix release with roughly 240 commits addressing new browsers that have entered the market as well as new features in the JavaScript language. The team spent a <em>ton</em> of time instrumenting the tests to run against <a href="https://travis-ci.org/" alt="Travis CI">Travis CI</a> and <a href="https://saucelabs.com/" alt="Sauce Labs">Sauce Labs</a> so that the source code would be easier to test. This will help to make new contributions, fixes and features to the framework and release much more rapidly. </p>
<p>It&#39;s easy to underestimate the value of all the work that went into the project over the past two months.</p>

]]></description><pubDate>Mon, 19 May 2014 21:38:19 GMT</pubDate><guid isPermaLink="true">/blog/2014/05/19/mootools-1-5-is-here</guid></item><item><title>Anyone using Core/Browser.js?</title><link>/blog/2014/02/06/anyone-using-corebrowser-js</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>On our road to Version 1.5, we&#39;re trying to eliminate some bad practices from our code. One of the things we&#39;ve just gotten rid of, is that a few last pieces of our libraries still depended on Browser UA detection. This has all been eliminated in favour of feature detection. To help us reach a decision on where to go with the <code>Browser</code> module, here&#39;s a quick survey. Reply via <a href="https://twitter.com/mootools" alt="@mootools">@mootools</a> or leave a comment here.</p>

]]></description><pubDate>Thu, 06 Feb 2014 23:12:10 GMT</pubDate><guid isPermaLink="true">/blog/2014/02/06/anyone-using-corebrowser-js</guid></item><item><title>MooTools on Bountysource</title><link>/blog/2013/05/30/mootools-on-bountysource</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Today we enabled Bountysource for <a href="https://www.bountysource.com/#trackers/22067-mootools-mootools-core" alt="MooTools Core">MooTools Core</a> and <a href="https://www.bountysource.com/#trackers/22069-mootools-mootools-more" alt="MooTools More">MooTools More</a>. Bountysource is a funding platform for Open Source projects like MooTools.</p>
<p>It works as follows: there is an issue on GitHub. You, or anyone else, can create a bounty to back the issue. Then some developer (either a MooTools Team Member or some other contributor) fixes the issue. Once it gets merged and he or she can collect the bounty!</p>
<p>We think this could help to prioritize issues and to increase community contributions. After all, who doesn&#39;t like to get some pocket money to buy a beer or <a href="/merch/docs/null/merch" alt="MooTools t-shirt">MooTools t-shirt</a>!</p>

]]></description><pubDate>Thu, 30 May 2013 19:11:38 GMT</pubDate><guid isPermaLink="true">/blog/2013/05/30/mootools-on-bountysource</guid></item><item><title>MooTools Conference</title><link>/blog/2013/04/18/mootools-conference</link><dc:creator><![CDATA[
Garrick Cheung
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>This year we&#39;re thinking about getting everyone in the MooTools community together, in one place, for a weekend to meet up, chat, discuss, and have an all-around good time. That&#39;s right, we&#39;re trying to plan a MooTools Conference!</p>
<p>But before we can do that, we need your help. We&#39;ve set up a <a href="https://docs.google.com/forms/d/1idslnn9d1_F4GvXowzA9m2fPrupXzTbCOvn7N-5r-y0/viewform" alt="form">form</a> so we can gauge interest in a MooTools Conference. All you need to do is take a minute and answer the questions.</p>
<p>We&#39;ll keep the form up until next week, but make sure you answer quickly so we can start planning this awesome Official MooTools Gathering (or OMG--which might or might not be the name of the conference).</p>

]]></description><pubDate>Thu, 18 Apr 2013 19:28:33 GMT</pubDate><guid isPermaLink="true">/blog/2013/04/18/mootools-conference</guid></item><item><title>Contributing to MooTools</title><link>/blog/2013/03/18/contributing-to-mootools</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Sometimes we get requests from people that want to contribute to MooTools. In this post I would like to give some pointers how one could help, but first I&#39;ll tell how I got involved in the MooTools project.</p>
<p>It was late 2009, the MooTools Forge (plugin repository) was just released, and I was learning JavaScript and MooTools by creating many plugins. This is already the first form of contributing to the MooTools project: releasing code that might benefit others. The cool thing about this was that I also helped other people on GitHub that released their MooTools plugins, and thanks to this interaction I learned even more.</p>
<p>At the same time the MooTools Core developers were building MooTools 1.3. I closely followed the developments and noticed that a few things were still missing. One thing that seemed easy was the documentation. So, in some spare time I dove into the MooTools source code, looking through the commit history to see what changed, and update the existing MooTools 1.2 documentation accordingly. If I remember correctly a pull request on GitHub at that time was basically a private message to the MooTools devs, so it was exciting whether my changes would be accepted. Fortunately contributing to the documentation is always helpful, so my changes got merged!</p>
<p>Because MooTools 1.3, at that time, was fully under construction, there were many loose ends that were easy to fix. I got invited to talk to the MooTools devs on IRC, and got involved more and more. So I started working on MooTools More 1.3, which was something else that was not updated for the new 1.3 release. This was a great way to learn how the internals of MooTools work: we had to look into MooTools Core to know how to effectively update the More code, or even fix things in MooTools Core, but at the same time it wasn&#39;t too difficult yet.</p>
<p>Later that year I went to the MooTools Hackathon in London, where we finalized the MooTools Core 1.3 and More 1.3 releases which were released later that year. I also got a nice place on the <a href="/developers/docs/null/developers" alt="MooTools developers">MooTools developers</a> page!</p>
<p>So how does my nice story tell you how to contribute? Basically what I did is look if something was blocking the release for MooTools 1.3, went ahead and fixed that, just by spamming the MooTools devs with new pull requests. </p>
<p>The most important point is direct communication with the developers. This mainly happened on IRC, but is still valid. Join #mootools, say you want to help out with something, or did something, explain again why we should merge your pull request. This is really the best way to get started. If you don&#39;t directly see a loose end where you can help, the MooTools developers probably know something interesting for you.</p>
<p>Currently there are a few aspects where you can help. If you have followed the development on GitHub you might know about prime, elements, agent, moofx etc. There is still some stuff (especially website/documentation related) to be done for a real release. See also the <a href="https://github.com/mootools/prime/wiki/Roadmap" alt="roadmap">roadmap</a> on the Prime Wiki.
But it&#39;s also perfectly fine if you like to work on the current version of MooTools Core. The idea is to release a MooTools 1.5 with mostly bugfixes, and a few deprecations. The biggest chunk of work for 1.5 is a review of bug reports and pull requests.</p>
<p>If you&#39;re not really comfortable contributing code or documentation directly, writing blog posts, tweeting about MooTools or helping other people on the <a href="https://groups.google.com/forum/?fromgroups#!forum/mootools-users" alt="MooTools Mailing List">MooTools Mailing List</a>, #mootools on IRC or <a href="http://stackoverflow.com/questions/tagged/mootools" alt="stackoverflow">stackoverflow</a> are really great ways to contribute too.</p>
<p>I would like to conclude with the benefit of contributing to MooTools or <a href="https://www.google.com/search?q=why+contribute+to+open+source" alt="Open Source">Open Source</a> in general. I&#39;ve learned so much and you get the opportunity to do things right. Apply testing techniques, try new technologies, learn more than you want to know about IE7 or other interesting browser behaviors. The things I learned by contributing MooTools simply made me a better developer.</p>
<p><em>Edit:</em> we created a wiki to collaborate on design and websites for MooTools projects on <a href="https://github.com/mootools/website/wiki" alt="GitHub">GitHub</a>. So if you&#39;re into that kind of thing, this is another great way to contribute!</p>

]]></description><pubDate>Mon, 18 Mar 2013 20:33:57 GMT</pubDate><guid isPermaLink="true">/blog/2013/03/18/contributing-to-mootools</guid></item><item><title>MooTools 1.2.6 Released</title><link>/blog/2013/02/19/mootools-1-2-6-released</link><dc:creator><![CDATA[
Cristian Carlesso
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>This is a new maintenance release for the old 1.2 series. The new ECMAScript 6 specification has a proposal for <a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/contains" alt="String.prototype.contains">String.prototype.contains</a> that unfortunately <a href="https://github.com/mootools/mootools-core/issues/2402" alt="conflicts">conflicts</a> with the <a href="/docs/docs/null/Types/String#String:contains" alt="MooTools implementation of contains">MooTools implementation of contains</a>.</p>
<p>Firefox 18 already ships this new version of contains. This is not a problem for MooTools 1.3.x and onward, but this breaks MooTools 1.2.5, especially the code inside the MooTools framework that utilized this method, like selectors.</p>
<p>This new 1.2.6 release solves these issues by overwriting the native version with the MooTools version of <code>String.prototype.contains</code>.</p>
<p>For the next MooTools version, 1.5, we will use the standard ES6 version. If you rely on the old behavior (which is only when you use the second argument), it will be possible to use the old version through the compatibility layer.</p>
<ul>
<li><a href="/download/docs/null/version/1.2.6" alt="Download 1.2.6">Download 1.2.6</a></li>
<li><a href="/download/docs/null/download" alt="Or upgrade to 1.4.5">Or upgrade to 1.4.5</a></li>
<li><a href="https://github.com/mootools/mootools-core/compare/1.2.5...1.2.6" alt="See changes on GitHub">See changes on GitHub</a></li>
</ul>

]]></description><pubDate>Tue, 19 Feb 2013 17:12:28 GMT</pubDate><guid isPermaLink="true">/blog/2013/02/19/mootools-1-2-6-released</guid></item><item><title>Book Review: Découvrez MooTools - Un framework JavaScript pour des sites dynamiques et interactifs</title><link>/blog/2012/12/04/book-review-decouvrez-mootools-un-framework-javascript-pour-des-sites-dynamiques-et-interactifs</link><dc:creator><![CDATA[
Jean-Philippe Déry
]]></dc:creator><category><![CDATA[
features
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Until recently, French literature about MooTools was pretty much non-existent. Thanks to Xavier Lecomte, now there is a very good book about MooTools in your native tongue that will get you up to speed in no time.</p>
<p><a href="http://www.amazon.com/gp/product/B008CH7GGE/">Découvrez Mootools - Un framework JavaScript pour des sites dynamiques et interactifs</a> (Discover MooTools - A javascript framework for dynamic and interactive websites) is aimed at beginner and intermediate developers who wish to create spectacular effects using MooTools. This book does not go deep into topics that would likely only confuse you, but instead it keeps everything simple and provides many clear cut examples and illustrations that will facilitate your understanding. Priced at 12.5 Euros (~15$) it’s a must-have if you’re looking to learn MooTools.</p>
<p>As the author says, it does not cover the entire framework. Instead, Xavier Lecomte selected the most commonly used MooTools pieces and explains them in detail. Throughout this book, you’ll learn how to create classes, handle DOM elements, create AJAX requests and create effects using Fx classes. The latter is probably the most discussed topic of this book as it goes through almost every Fx-based class in MooTools. When it comes to Fx classes, the most complex part is probably options. Although they are well named, they could be difficult to grasp, especially to the novice user. This book makes this type of functionality very clear by explaining all the options for each class discussed, at times, through the use of illustrations. The Fx chapter wraps up with a complete example, where the author builds a pong game using tools explained throughout the chapter.</p>
<p>Finally, the book discusses work done by the MooTools community. Although it does not go deeply into each project (most of them would require a book on their own), it gives a good idea of what MooTools is able to offer. </p>
<p>To conclude, if you&#39;re a native French speaker interested in learning MooTools, this book is a must-have, especially at that price. I hope Xavier Lecomte will continue writing about MooTools, the in-depth detailing of this book is amazing and will certainly benefit many.  </p>

]]></description><pubDate>Tue, 04 Dec 2012 22:26:29 GMT</pubDate><guid isPermaLink="true">/blog/2012/12/04/book-review-decouvrez-mootools-un-framework-javascript-pour-des-sites-dynamiques-et-interactifs</guid></item><item><title>Moobile 0.2 Released</title><link>/blog/2012/11/03/moobile-0-2-released</link><dc:creator><![CDATA[
Jean-Philippe Déry
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>I’m very happy to present the latest version of <a href="http://moobilejs.com">Moobile</a>. This release focuses on stability and building solid groundwork for the future. This includes, for instance...</p>
<p><h3>iOS 6 Theme</h3>
The iOS theme has been updated to closely match the recent changes in iOS 6 for both iPhone and iPad. This release also addresses the updated border-image syntax that casued issues with buttons inside bars or alerts. Finally, elements that were not hardware-accelerated (using only translateX or translateY) are now as smooth as they should be.</p>
<p><h3>Android Theme</h3>
This release includes a basic Android 4 theme. This is still a work in progress and, since my testing devices are limited, I cannot guarantee it will work well on all devices. Any tips you can share about improving speed on Android would be greatly appreciated.</p>
<p><h3>Transitions</h3>
Two more transitions were added: Cover.Page and Cover.Box. They aim to replicate <a href="http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html">modal view transition on iPad</a>. The cover transition, using the Android theme, has also been customized to match the native Android look and feel.</p>
<p><h3>Simulator</h3>
The simulator’s UI has been improved. It’s now less intrusive and provides a zoom functionality. Keyboard shortcuts were also added; you may now use the arrow keys to zoom or rotate. Settings (such as orientation, zoom and options) are now saved on a per-device basis so you won’t have to zoom out every time you use the iPad device on your laptop. </p>
<p><h3>The Boiler Plate</h3>
Touch icons and startup images for all sizes have been added to the boiler plate.</p>
<p><h3>Moobile.Component.defineAttribute</h3>
A minor improvement, but an improvement nonetheless. For those who were tired of writing data-option-style-name, data-style is the new alternative. It’s now possible to specify a behavior for certain attributes on a component thanks to the Moobile.Component.defineAttribute function.</p>
<p><h3>The Future</h3>
The next release will geared towards adding content. Tab views, split views and on-off switches will be included in the new version. I’m also planning to improve the documentation, add more examples and make things easier to understand.</p>
<p><h3>Requests</h3>
If you have any requests, you’re welcome to contact me through the <a href="https://github.com/jpdery">GitHub page</a>. I’ll be glad to listen to your requests and, hopefully, improve your experience working with Moobile.</p>
<p>Moobile is developed by Jean-Philippe Déry and is hosted on <a href="http://moobilejs.com">moobilejs.com</a></p>

]]></description><pubDate>Sat, 03 Nov 2012 15:16:48 GMT</pubDate><guid isPermaLink="true">/blog/2012/11/03/moobile-0-2-released</guid></item><item><title>JavaScript Challenge #3: Review</title><link>/blog/2012/08/22/javascript-challenge-3-review</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>The <a href="/blog/2012/08/08/javascript-challenge-3/">third JavaScript challenge</a> showed us what it would be like to draw with canvas. The challenge was open ended, in so far as there were no restrictions as to what drawing technology could have been used, but everyone just went straight for canvas.</p>

]]></description><pubDate>Wed, 22 Aug 2012 10:54:02 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/22/javascript-challenge-3-review</guid></item><item><title>JavaScript Challenge #2: Review</title><link>/blog/2012/08/22/javascript-challenge-2-review</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>The <a href="/blog/2012/08/01/javascript-challenge-2/">second JavaScript challenge</a> was loads of fun! It seems the topic of game development creates interesting challenges and invited participation. Once again, there were many excellent entries but the following entries showcase something specific we want to point out...</p>

]]></description><pubDate>Wed, 22 Aug 2012 10:53:50 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/22/javascript-challenge-2-review</guid></item><item><title>JavaScript Challenge #5 (Cows never forget)</title><link>/blog/2012/08/22/javascript-challenge-5</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>The other day I was playing <a href="http://en.wikipedia.org/wiki/Fez_(video_game)">Fez</a> when I was reminded of an old memory game I used to play where a sequence of colours are shown and the player has to repeat the sequence correctly to proceed. Players are shown increasingly long sequences or colours, stretching their memory to its limits!</p>

]]></description><pubDate>Wed, 22 Aug 2012 10:52:06 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/22/javascript-challenge-5</guid></item><item><title>JavaScript Challenge #4 (Space, the final grassy gnoll)</title><link>/blog/2012/08/15/javascript-challenge-4</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>Back in the old days, there was an operating system named after transparent, glass-filled wall apertures numbering in mid-90’s. This operating system was designed to run on computers with CRT screens, which actually needed software to upset the patterns of light they generated, called screensavers.</p>
<p>This operating system had just such software, in a number of different variations. One of these created the “illusion” that the observer was travelling through space, passing stars. This is the subject of this week’s challenge. </p>

]]></description><pubDate>Wed, 15 Aug 2012 11:01:18 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/15/javascript-challenge-4</guid></item><item><title>Optimizing MooTools builds sans Internet Explorer</title><link>/blog/2012/08/13/optimizing-mootools-builds-sans-internet-explorer</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Since the very beginning of MooTools you can only pick the right components that you need with the MooTools <a href="/core/docs/null/core" alt="Download">Download</a> Builder, to ensure there are no useless bytes going through the wires. But this means you still download browser-specific code. What if you could optimize the code further by removing unnecessary browser-specific code?</p>
<p>The good news is, you can optimize MooTools builds to remove specific (IE) code! <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a> has been used to concatenate builds since MooTools 1.3. Removing certain code blocks, like MooTools 1.2. compatibility or specific IE code is one of the features of Packager. Lets see how it works. We begin with downloading Packager.</p>

]]></description><pubDate>Mon, 13 Aug 2012 18:32:08 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/13/optimizing-mootools-builds-sans-internet-explorer</guid></item><item><title>JavaScript Challenge #3 (Cows all the way down)</title><link>/blog/2012/08/08/javascript-challenge-3</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>This week we get graphical! Many people are exposed to some form of <a href="http://en.wikipedia.org/wiki/Turtle_graphics">turtle drawing</a> program when they first learn programming (or just basic computer usage and analytical thinking). It’s also a good way to develop the parts of your brain that deal with forward planning.</p>

]]></description><pubDate>Wed, 08 Aug 2012 07:51:02 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/08/javascript-challenge-3</guid></item><item><title>JavaScript Challenge #1: Review</title><link>/blog/2012/08/08/javascript-challenge-1-review</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>The <a href="/blog/2012/07/25/javascript-challenge-1/">first JavaScript challenge</a> was a huge success, with many excellent entries. While there are many excellent entries, we found the following few taught us interesting and helpful lessons...</p>

]]></description><pubDate>Wed, 08 Aug 2012 07:50:51 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/08/javascript-challenge-1-review</guid></item><item><title>JavaScript Challenge #2 (Whac-A-Moo)</title><link>/blog/2012/08/01/javascript-challenge-2</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>Hopefully the <a href="/blog/2012/07/25/javascript-challenge-1/">first challenge</a> got you excited for JavaScript development in a competitive environment...</p>
<p>One of the most common requirements of web applications is to be able to respond to user input, and in particular clicks (or touches). Continuing with our theme of element generation (and in some cases animation); this week’s challenge will be to create a basic <a href="http://en.wikipedia.org/wiki/Whac-A-Mole">whac-a-mole</a> game.</p>

]]></description><pubDate>Wed, 01 Aug 2012 09:49:18 GMT</pubDate><guid isPermaLink="true">/blog/2012/08/01/javascript-challenge-2</guid></item><item><title>JavaScript Challenge #1 (Wait, weekly?)</title><link>/blog/2012/07/25/javascript-challenge-1</link><dc:creator><![CDATA[
Christopher Pitt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
challenges
]]></category><description><![CDATA[
<p>The purpose of MooTools is not simply to bring syntactic sugar to JavaScript development but also to make you better at JavaScript. Often in forums and on Stack Overflow, the question will arise; &quot;how do I do [insert UI widget] with [insert popular library]&quot;.</p>
<p>The problem with these kinds of questions is that they often speak of the over-dependence on a certain framework (such as MooTools or jQuery) without a proper understanding of how JavaScript works or how to structure code well.</p>
<p>It is with this in mind that we want to set some challenges in plain old JavaScript (which are probably good programming challenges for any language) that will flex your grey matter.</p>

]]></description><pubDate>Wed, 25 Jul 2012 10:06:46 GMT</pubDate><guid isPermaLink="true">/blog/2012/07/25/javascript-challenge-1</guid></item><item><title>MooTools Forge and GitHub are friends again</title><link>/blog/2012/06/24/mootools-forge-and-github-are-friends-again</link><dc:creator><![CDATA[
Tim Wienk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Many of you have noticed that the Forge was having trouble updating and adding new plugins. GitHub updated their API to a new (v3) version quite a while ago, but we hadn&#39;t been able to make the time to update the Forge to use it yet. On June 12, GitHub disabled the v2 API completely, and updating and adding to the Forge stopped working.</p>

]]></description><pubDate>Sun, 24 Jun 2012 19:14:55 GMT</pubDate><guid isPermaLink="true">/blog/2012/06/24/mootools-forge-and-github-are-friends-again</guid></item><item><title>Moobile 0.1 Released</title><link>/blog/2012/04/24/moobile-0-1-released</link><dc:creator><![CDATA[
Jean-Philippe Déry
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p><img style="float:right" src="http://moobilejs.com/images/logo.png" alt="Moobile" width="270" /></p>
<p>Moobile is a mobile web application framework built on MooTools. It focuses on building mobile apps that behave as close as possible to their native counterparts, either on a mobile browser or on a webview wrapper such as Phonegap.</p>
<p>Moobile is also meant to be extended. I believe one of the strengths of a mobile web app is the ease of creating something entirely different. Moobile helps in this area by providing a structure as well as controls, view and controllers that can be easily extended to suit your needs.</p>

]]></description><pubDate>Tue, 24 Apr 2012 17:22:09 GMT</pubDate><guid isPermaLink="true">/blog/2012/04/24/moobile-0-1-released</guid></item><item><title>MooTools 1.4.5 Released</title><link>/blog/2012/02/26/mootools-1-4-5-released</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p><strong>MooTools Core 1.4.5</strong> is a maintenance release for the 1.4 branch.</p>
<p>1.4.5 brings a critical bugfix for <code>Fx.CSS</code> which caused many troubles for tweening and morphing your element styles. The bug was caused by a fix in 1.4.4 which should improve animating other length units like <code>%</code> or <code>em</code> (see <a href="https://github.com/mootools/mootools-core/issues/2160" alt="#2160">#2160</a>. Many of you noticed the bug and filled bugreports and also helped us testing this new release.</p>
<p>We have improved our tests and are planning to freeze the code for a new release for a longer period so we can gather more feedback to prevent potential regressions. If you&#39;re interested in testing a new release in your application, you can ping us on IRC (#mootools on freenode.net), Twitter (<a href="http://twitter.com/mootools" alt="@mootools">@mootools</a> / <a href="http://twitter.com/astolwijk" alt="@astolwijk">@astolwijk</a>) or in the <a href="https://groups.google.com/forum/#!forum/mootools-users" alt="MooTools User Group">MooTools User Group</a>.</p>

]]></description><pubDate>Mon, 27 Feb 2012 02:00:45 GMT</pubDate><guid isPermaLink="true">/blog/2012/02/26/mootools-1-4-5-released</guid></item><item><title>MooTools 1.4.4 Released</title><link>/blog/2012/02/07/mootools-1-4-4-released</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we release <strong>MooTools Core 1.4.4</strong> which is a <strong>critical</strong> maintenance release. 1.4.3 release introduced a bug as a result of fixing another bug. Specifically, 1.4.3 did not allow custom attributes (e.g. <code>data-</code> or non-standard attributes). <a href="https://github.com/mootools/mootools-core/issues/2247" alt="See this issue">See this issue</a> for a full explanation and solution.</p>
<p>We recommend that all users upgrade to 1.4.4 as soon as possible.</p>

]]></description><pubDate>Tue, 07 Feb 2012 16:30:11 GMT</pubDate><guid isPermaLink="true">/blog/2012/02/07/mootools-1-4-4-released</guid></item><item><title>MooTools 1.4.3 Released</title><link>/blog/2012/01/21/mootools-1-4-3-released</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we release <strong>MooTools Core 1.4.3</strong> which is a small maintenance release. Upgrading from 1.4.2 should not cause any backward incompatibilities. We recommend that all users upgrade to 1.4.3 as soon as possible.</p>

]]></description><pubDate>Sat, 21 Jan 2012 17:59:21 GMT</pubDate><guid isPermaLink="true">/blog/2012/01/21/mootools-1-4-3-released</guid></item><item><title>JxLib: An Introduction</title><link>/blog/2011/12/26/jxlib-an-introduction</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
features
]]></category><description><![CDATA[
<p><i>Jon Bomgardner is a contributor to the <a href="http://jxlib.org" alt="jxlib.org">jxlib.org</a> project. After recently joining the MooTools Developer mailing list and sharing his experience in upgrading jxlib to MooTools 1.4.2 we asked him to share his work here on the blog.</i></p>
<p>###What is JxLib
JxLib is a JavaScript UI framework built on MooTools. It allows web developers and designers to quickly build user interfaces for their applications. JxLib is based on some sweet HMTL markup and strives to be fully CSS compliant.  It is also a modular library allowing you to pick and choose from the available components as well as giving you the ability to override default behaviors and extend core classes.</p>

]]></description><pubDate>Mon, 26 Dec 2011 20:02:37 GMT</pubDate><guid isPermaLink="true">/blog/2011/12/26/jxlib-an-introduction</guid></item><item><title>MooTools Behavior</title><link>/blog/2011/12/20/mootools-behavior</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Those of you who follow my work over on <a href="http://clientcide.com" alt="Clientcide">Clientcide</a> may already be familiar with it, but for the rest of you I wanted to write a blog posts here on MooTools.net about the work I&#39;ve been doing on a library called Behavior - a throwback to the <a href="http://www.ccs.neu.edu/home/dherman/javascript/behavior/" alt="behavior.js library">behavior.js library</a> released way back in 2005 which one might consider to be philosophically an ancestor of sorts.</p>
<div class="heading clearfix"><h3>Purpose</h3></div><p>All well-written web sites / apps that are interactive have the same basic pattern:</p>

]]></description><pubDate>Wed, 21 Dec 2011 00:51:54 GMT</pubDate><guid isPermaLink="true">/blog/2011/12/20/mootools-behavior</guid></item><item><title>MooTools 1.4.2 Released</title><link>/blog/2011/12/02/mootools-1-4-2-released</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Today we release MooTools Core 1.4.2 which is a small maintenance release. Upgrading from 1.4.1 should not cause any backward incompatibilities. We recommend all users upgrade to 1.4.2 as soon as possible.</p>

]]></description><pubDate>Fri, 02 Dec 2011 21:03:31 GMT</pubDate><guid isPermaLink="true">/blog/2011/12/02/mootools-1-4-2-released</guid></item><item><title>MooTools Forge - Now with comments</title><link>/blog/2011/10/18/mootools-forge-now-with-comments</link><dc:creator><![CDATA[
Darren Waddell
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Just a quick update to let you know we&#39;ve added comments through Disqus to all Forge plugins.</p>
<p>If you&#39;re a plugin owner, you can subscribe by going to your plugin page and clicking &#39;subscribe by email&#39; at the bottom.</p>
<p>Remember, if you find a bug in a plugin, you should always report it in that repository&#39;s Github Issues.</p>
<p>As it stands, all comments will need to be moderated before they appear, just to make sure we don&#39;t get trolled / spammed and we&#39;re really looking forward to adding the ability to comment to the other parts of the website - particularly in documentation.</p>
<p>Thanks to <a href="https://twitter.com/#!/anutron">Aaron</a> for making this happen!</p>

]]></description><pubDate>Tue, 18 Oct 2011 22:55:47 GMT</pubDate><guid isPermaLink="true">/blog/2011/10/18/mootools-forge-now-with-comments</guid></item><item><title>MooTools Core 1.4.1</title><link>/blog/2011/10/06/mootools-core-1-4-1</link><dc:creator><![CDATA[
Christoph Pojer
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Today we release MooTools Core 1.4.1 which is a small maintenance release and as such only fixes bugs that were introduced in previous releases. We have fixed the <code>mousewheel</code> event in Firefox, <code>Element.fade</code> sets the <code>visibility</code> CSS-property again, Event.Delegation now behaves properly if you use <code>fireEvent</code> and we have fixed a couple of issues with <code>Element.setProperty</code> and <code>Element.removeProperty</code>.</p>
<p>Upgrading from 1.4.0 should not cause any backward incompatibilities. We recommend all users to update to 1.4.1 as soon as possible.</p>
<div class="heading clearfix"><h3>Get it!</h3></div><ul>
<li><a href="/download/docs/null/download" alt="Download MooTools Core 1.4.1">Download MooTools Core 1.4.1</a>; <a href="/core/docs/null/core" alt="Build MooTools Core 1.4.1">Build MooTools Core 1.4.1</a></li>
<li>Fork / clone <a href="http://github.com/mootools/mootools-core/tree/1.4.1" alt="MooTools Core 1.4.1 from GitHub">MooTools Core 1.4.1 from GitHub</a>, and build it yourself with <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a>.</li>
<li><a href="http://code.google.com/apis/ajaxlibs/documentation/index.html#mootools" alt="Google CDN">Google CDN</a> (will be updated soon)</li>
<li><a href="/docs/docs/null/docs" alt="Browse the Documentation for Core &amp;amp; More.">Browse the Documentation for Core &amp; More.</a></li>
</ul>

]]></description><pubDate>Thu, 06 Oct 2011 19:01:19 GMT</pubDate><guid isPermaLink="true">/blog/2011/10/06/mootools-core-1-4-1</guid></item><item><title>MooTools 1.4.0</title><link>/blog/2011/09/10/mootools-1-4-0</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>As of today a new version of MooTools is available. This includes MooTools Core and MooTools More. We&#39;ve communicated a lot about changes for 2.0 but we also felt we had some good stuff that would benefit you directly which we wanted to add to the 1.x releases. This good stuff contains of course numerous bugfixes but mostly one important new feature for MooTools Core: Delegation. This 1.4 release should be fully <em>backward compatible</em> with the MooTools 1.2 and 1.3 series&#39;.</p>

]]></description><pubDate>Sat, 10 Sep 2011 14:16:16 GMT</pubDate><guid isPermaLink="true">/blog/2011/09/10/mootools-1-4-0</guid></item><item><title>Moving to GitHub Issues</title><link>/blog/2011/08/01/moving-to-github-issues</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>We at the MooTools headquarters love GitHub for all its features which makes contributing and managing our code much easier than say, five years ago. GitHub is the place to be for all cool JavaScript projects which makes following your projects of interest a lot easier. When we moved to GitHub a long time ago, the ticket system was too basic to be a real solution. Fortunately this has <a href="https://github.com/blog/831-issues-2-0-the-next-generation" alt="since">since</a> improved.</p>
<p>Especially the additions for milestones and assignees were important for us. With this in place GitHub issues can finally replace Lighthouse. </p>

]]></description><pubDate>Tue, 02 Aug 2011 00:14:38 GMT</pubDate><guid isPermaLink="true">/blog/2011/08/01/moving-to-github-issues</guid></item><item><title>July 12th Dev Hour Recap/Summary</title><link>/blog/2011/07/19/july-12th-dev-hour-recapsummary</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Every week the MooTools developers host an IRC <del>Office</del>Developer Hour where they work together to listen to your feedback, answer your questions, and develop MooTools. We do this every Tuesday at 11am EST at <a href="irc://irc.freenode.net/mootools" alt="#mootools Freenode IRC Channel">#mootools Freenode IRC Channel</a>. Everyone’s welcomed to join us.</p>
<p>This recap includes:</p>
<ul>
<li>Mentions</li>
<li>Answers to: Where do you guys think MooTools can improve?</li>
<li>Sneak Peak to Improved Docs</li>
<li>Agenda for July 19th Dev Hour</li>
</ul>

]]></description><pubDate>Tue, 19 Jul 2011 14:28:47 GMT</pubDate><guid isPermaLink="true">/blog/2011/07/19/july-12th-dev-hour-recapsummary</guid></item><item><title>July 5th IRC Office Hour Recap/Summary</title><link>/blog/2011/07/11/july-5th-irc-office-hour-recapsummary</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Every week the MooTools developers have an IRC office hour meeting where they work together to listen to your feedback, answer your questions, and develop on MooTools. We do this every Tuesday at 11am EST at <a href="irc://irc.freenode.net/mootools" alt="#mootools Freenode IRC Channel">#mootools Freenode IRC Channel</a>. Everyone’s welcome so join us tomorrow.</p>
<p>This recap includes:</p>
<ul>
<li>Compare 1.3.x and Experimental 2.y.x Code Diffs</li>
<li>Things to Come (Agenda’ed Office Hour, Dedicated “Hackathon” Office Hours)</li>
</ul>

]]></description><pubDate>Mon, 11 Jul 2011 19:11:25 GMT</pubDate><guid isPermaLink="true">/blog/2011/07/11/july-5th-irc-office-hour-recapsummary</guid></item><item><title>June 28th IRC Office Hour Recap/Summary</title><link>/blog/2011/07/04/june-28th-irc-office-hour-recapsummary</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
events
]]></category><description><![CDATA[
<p>Every week the MooTools developers have an IRC office hour meeting where they work together to listen to your feedback, answer your questions, and develop on MooTools. We do this every Tuesday at 11am EST at <a href="irc://irc.freenode.net/mootools" alt="#mootools Freenode IRC Channel">#mootools Freenode IRC Channel</a>. Everyone’s welcome so join us tomorrow.</p>
<div class="heading clearfix"><h3>Recap</h3></div>
]]></description><pubDate>Tue, 05 Jul 2011 01:37:34 GMT</pubDate><guid isPermaLink="true">/blog/2011/07/04/june-28th-irc-office-hour-recapsummary</guid></item><item><title>June 21st Office Hour Recap/Summary</title><link>/blog/2011/06/27/june-21st-office-hour-recapsummary</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
events
]]></category><description><![CDATA[
<p>As <a href="/blog/docs/null/20/reminder-next-office-hour-is-tomorrow-june-21st#comment-2020" alt="suggested by our community">suggested by our community</a>, we’re going to release a recap, or summary, of the IRC Office Hour after every session. We want to encourage you to join us on Tuesday’s at 11am EST in the <a href="irc://irc.freenode.net/mootools" alt="#mootools IRC channel">#mootools IRC channel</a>, but if need be let this be your medium to discuss your perspective and your own ideas (you can also discuss in the <a href="https://groups.google.com/forum/#!forum/mootools-users" alt="Google Group">Google Group</a>).</p>
<div class="heading clearfix"><h3>Topics Covered</h3></div><ul>
<li>MooTools 2.0 Community “Wish List”</li>
<li>MooTools Documentation</li>
<li>Flex Box Model</li>
<li>Require.JS and Namespacing</li>
<li>MooTools Roadmap</li>
<li>MooTools Feature: Accessors</li>
<li>Model Change Events</li>
<li>MooTools 2.0 Site</li>
<li>MooTools UI and Mobile</li>
<li>Event Delegation in Core</li>
<li>Github Issues</li>
</ul>

]]></description><pubDate>Mon, 27 Jun 2011 12:46:11 GMT</pubDate><guid isPermaLink="true">/blog/2011/06/27/june-21st-office-hour-recapsummary</guid></item><item><title>Reminder: Next Office Hour is Tomorrow (June 21st)!</title><link>/blog/2011/06/20/reminder-next-office-hour-is-tomorrow-june-21st</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
events
]]></category><description><![CDATA[
<p>Last week we held our first IRC office hours in the #mootools channel on irc.freenode.net.  Fifteen (15) MooTools team members were in attendance and we got a lot of responses from our community. We covered: sandboxing natives, namespacing, packaging, roadmap, MVC, and that I look like <a href="https://park-204.wikispaces.com/file/view/sam5.jpg/33426961/sam5.jpg" alt="Sam from the Lord of the Rings">Sam from the Lord of the Rings</a>.</p>
<p>This is a reminder that <strong>tomorrow</strong> (June 21st) we’re having another office hour and you’re cordially invited to join us. </p>
<p>Unlike last week, this week we’ll have a couple of questions ready to steer the conversation. This week we’ll talk about MooTools 2.0 and what you guys need to love MooTools even more. We’ll be taking names down as well, for those that would like to contribute.</p>
<p>Keep reading to learn the details.</p>

]]></description><pubDate>Mon, 20 Jun 2011 17:09:59 GMT</pubDate><guid isPermaLink="true">/blog/2011/06/20/reminder-next-office-hour-is-tomorrow-june-21st</guid></item><item><title>Open IRC Office Hours!</title><link>/blog/2011/06/09/open-irc-office-hours</link><dc:creator><![CDATA[
Olmo Maldonado
]]></dc:creator><category><![CDATA[
events
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Starting next week, we’re going to be holding regular IRC office hours for MooTools developers in the <a href="irc://irc.freenode.net/mootools" alt="#mootools">#mootools</a> channel on irc.freenode.net. Members of the MooTools team will be on hand to answer your technical questions.</p>

]]></description><pubDate>Fri, 10 Jun 2011 02:00:15 GMT</pubDate><guid isPermaLink="true">/blog/2011/06/09/open-irc-office-hours</guid></item><item><title>MooTools Core 1.3.2 and More 1.3.2.1</title><link>/blog/2011/04/28/mootools-core-1-3-2-and-more-1-3-2-1</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Today we announce the simultaneous release of MooTools Core 1.3.2 and More 1.3.2.1. This is mostly a bugfix release and does not contain many new features. The most important fix is within our selector engine, Slick, which failed in some cases where the selectors began with an operator (ex. <code>~div</code>).</p>
<p>A new component has been added to MooTools More: Table. Table was slated to be added in MooTools Core 2.0, but we&#39;re making it available in MooTools More now. Table is similar to the JavaScript object literal, but where an object can only have a scalar value (string or number) as a key, Table can have any value as a key. Where the order of values in an object is not static like an array (by specification, usually browsers keep the order which they are defined), the values in Table will have a static order. These advantages come with a performance cost, where an object value is a direct look-up, Table uses <code>indexOf</code> which is less efficient, so use with care.</p>
<div class="heading clearfix"><h3>Notable changes in MooTools Core include:</h3></div><ul>
<li>Fixed Slick bug with <code>~div</code>-like selectors</li>
<li>Fixed MooTools in the Node.js environment</li>
<li>Fixed an exception in DOMReady in Chrome when the page with MooTools was in an IFrame</li>
<li>Fixed <code>setOpacity</code> for very small numbers in IE</li>
<li>Fixed an exception in FireFox 4 when MooTools tried to overwrite <code>document.head</code></li>
<li>Added the possibility to create elements with boolean values with an selector, e.g. <code>new Element(&#39;input[checked]&#39;);</code></li>
</ul>
<div class="heading clearfix"><h3>MooTools More:</h3></div><ul>
<li>Rewritten Element.Position which solved some issues </li>
<li>Added Table, as described above</li>
<li>Ironed out some Event Delegation issues</li>
<li>Additional fixes can be found at the <a href="https://mootools.lighthouseapp.com/projects/24057/milestones/104271-1322" alt="Lighthouse for 1.3.2.1">Lighthouse for 1.3.2.1</a></li>
</ul>
<div class="heading clearfix"><h3>Get it!</h3></div><ul>
<li><a href="/download/docs/null/download" alt="Download MooTools Core 1.3.2">Download MooTools Core 1.3.2</a>; <a href="/core/docs/null/core" alt="Build MooTools Core 1.3.2">Build MooTools Core 1.3.2</a></li>
<li><a href="/more/docs/null/more" alt="Build MooTools More 1.3.2.1">Build MooTools More 1.3.2.1</a></li>
<li>Fork / clone <a href="http://github.com/mootools/mootools-core/tree/1.3.2" alt="MooTools 1.3.2 from GitHub">MooTools 1.3.2 from GitHub</a>, and build it yourself with <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a>.</li>
<li><a href="http://github.com/mootools/mootools-core/commits/1.3.2" alt="Read the Core commit logs">Read the Core commit logs</a> to see precisely what has changed.</li>
<li><a href="http://github.com/mootools/mootools-more/commits/1.3.2.1" alt="Read the More commit logs">Read the More commit logs</a> to see precisely what has changed for More.</li>
<li><a href="/docs/docs/null/docs" alt="Browse the Documentation for Core &amp;amp; More.">Browse the Documentation for Core &amp; More.</a></li>
<li>Please report any bugs you can find on <a href="https://mootools.lighthouseapp.com/projects/2706-mootools/tickets" alt="Lighthouse">Lighthouse</a>, our bug tracker.</li>
</ul>

]]></description><pubDate>Thu, 28 Apr 2011 20:23:28 GMT</pubDate><guid isPermaLink="true">/blog/2011/04/28/mootools-core-1-3-2-and-more-1-3-2-1</guid></item><item><title>MooTools Gets a Little Closer to Home </title><link>/blog/2011/04/01/mootools-gets-a-little-closer-to-home</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>A few months back we <a href="/blog/docs/null/05/mootools-survey" alt="sent out a survey">sent out a survey</a> asking you where you&#39;d like for the development team to focus its energies. Since then we&#39;ve <a href="/blog/docs/null/04/new-demos" alt="worked on demos">worked on demos</a> and <a href="/blog/docs/null/25/mootools-core-more-1-3-1" alt="released a new version of the framework">released a new version of the framework</a> with new features based on that valuable feedback. Getting direct input from everyone who uses MooTools helps us as developers stay on target for the things you need.</p>
<p>One of the items that came up several times in the survey was a desire for more support for internationalization. MooTools More already ships with a <a href="/docs/docs/null/Locale/Locale" alt="system for localizing plugins">system for localizing plugins</a>, but this functionality isn&#39;t baked deep into the framework. Several comments in the survey implied a desire to see this functionality available throughout MooTools Core. One respondent wrote, &quot;It is difficult to understand MooTools as my English is not great. My website has many visitors from where I live and they need all to understand it. Thank you.&quot;</p>
<p>You asked for a more culturally sensitive framework and we listened. Given that the MooTools development team is based all over the world from Italy to Austria to The Netherlands to Germany to Sweden we can understand the value of having MooTools available in your native tongue.</p>

]]></description><pubDate>Fri, 01 Apr 2011 09:54:15 GMT</pubDate><guid isPermaLink="true">/blog/2011/04/01/mootools-gets-a-little-closer-to-home</guid></item><item><title>Events with MooTools - Element, Class, Delegation and Pseudos</title><link>/blog/2011/03/28/events-with-mootools-element-class-delegation-and-pseudos</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>One of the most useful and common part of MooTools is its Events Type. There are two Event usages:  Element and Class. Element.Events is probably the most known because that&#39;s probably one of the first things you&#39;ve used when you started using MooTools. Furthermore, MooTools More 1.3 Events.Pseudos has been introduced to give even more power and control over Events and with Event Delegation can give your page a massive performance boost. This blog post will give you a deeper insight into all components.</p>

]]></description><pubDate>Mon, 28 Mar 2011 19:18:10 GMT</pubDate><guid isPermaLink="true">/blog/2011/03/28/events-with-mootools-element-class-delegation-and-pseudos</guid></item><item><title>MooTools Core &amp; More 1.3.1</title><link>/blog/2011/02/25/mootools-core-more-1-3-1</link><dc:creator><![CDATA[
Christoph Pojer
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>The MooTools team is very happy to announce a simultaneous update of both Core and More repositories. The past year was amazing for us. We had a great hackathon in London, we gave you MooTools 1.3, added a lot of new people to our team and improved everything around the code. The results of the MooTools survey clearly showed that we are doing the right things and we intend to make MooTools even better in 2011. We spent the past weeks fixing bugs and adding new features on both projects. This is what&#39;s new:</p>
<div class="heading clearfix"><h3>Changes</h3></div><ul>
<li>Lots (and by that I mean LOTS) of documentation improvements, clarifications and cleanups</li>
<li>Updated Slick to 1.1.5 and improved the speed of our Slick selector engine</li>
<li>Added delegation support for <code>submit</code>, <code>focus</code>, <code>blur</code>, <code>reset</code>, <code>change</code> and <code>select</code> events in MooTools More</li>
<li>If available the native JSON methods are now used in JSON.decode and JSON.encode</li>
<li>Multiple Pseudos click:relay(a):once <a href="/demos/docs/null/demos/?demo=Element.Event.Pseudos" alt="(demo)">(demo)</a></li>
<li>Two new <a href="/docs/docs/null/Class/Events.Pseudos#Pseudos:throttle" alt="pseudo events">pseudo events</a>: <code>:throttle</code> and <code>:pause</code></li>
<li>Added String.truncate to String.Extras in More</li>
<li>More than two hundred changes to increase the stability of both <a href="https://github.com/mootools/mootools-core/compare/1.3...1.3.1" alt="Core">Core</a> &amp; <a href="https://github.com/mootools/mootools-more/compare/1.3.0.1...1.3.1.1" alt="More">More</a></li>
</ul>
<p>I am also pleased to announce our newest addition to the MooTools More team, <a href="http://twitter.com/#!/fat" alt="Jacob Thornton">Jacob Thornton</a>, who is a great developer, currently working for Twitter. He has put a substantial amount of work into making MooTools More even better.</p>
<p>Be sure to check out the updated demos in our new <a href="/demos/docs/null/demos" alt="demos section">demos section</a>.</p>
<div class="heading clearfix"><h3>Get it!</h3></div><ul>
<li><a href="/download/docs/null/download" alt="Download MooTools Core 1.3.1">Download MooTools Core 1.3.1</a>; <a href="/core/docs/null/core" alt="Build MooTools Core 1.3.1">Build MooTools Core 1.3.1</a></li>
<li><a href="/more/docs/null/more" alt="Build MooTools More 1.3.1.1">Build MooTools More 1.3.1.1</a></li>
<li>Fork / clone <a href="http://github.com/mootools/mootools-core/tree/1.3.1" alt="MooTools 1.3.1 from GitHub">MooTools 1.3.1 from GitHub</a>, and build it yourself with <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a>.</li>
<li><a href="http://github.com/mootools/mootools-core/commits/1.3.1" alt="Read the commit logs">Read the commit logs</a> to see precisely what has changed.</li>
<li><a href="/docs/docs/null/docs" alt="Browse the Documentation for Core &amp;amp; More.">Browse the Documentation for Core &amp; More.</a></li>
<li>Please report any bugs you can find on <a href="https://mootools.lighthouseapp.com/projects/2706-mootools/tickets" alt="Lighthouse">Lighthouse</a>, our bug tracker.</li>
</ul>

]]></description><pubDate>Fri, 25 Feb 2011 20:05:33 GMT</pubDate><guid isPermaLink="true">/blog/2011/02/25/mootools-core-more-1-3-1</guid></item><item><title>MooTools Survey Results</title><link>/blog/2011/01/31/survey-results</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Last month we held the <a href="/blog/docs/null/05/mootools-survey" alt="MooTools User&amp;#39;s Survey">MooTools User&#39;s Survey</a> and we would like to thank you all for participating and sharing your ideas. We received more than 700 submissions!  Here is a summary of the results and our thoughts about them.</p>
<div class="heading clearfix"><h3>Core</h3></div><p>Most of you think MooTools Core is fine as it is, with an obvious exception: Swiff has to go. This change has already been planned for the next major release. There are several good ideas about what we could add to Core: element shortcuts (<code>.hide()</code> and <code>.show()</code>, for example), a few Types from MooTools More, Event Delegation, Pseudo Events, and <a href="http://wwwdelivery.superstock.com/WI/223/1558/PreviewComp/SuperStock_1558-09213.jpg" alt="cowbells">cowbells</a>! In short, we would like to keep MooTools Core a compact, modular, object oriented framework. Specific UI plugins, for instance, would be a better fit for MooTools More or maybe the Forge.</p>
<div class="heading clearfix"><h3>More</h3></div><p>Many of you supplement MooTools Core with MooTools More (96%) but are also equally divided whether More should contain UI plugins or if those should be in the Forge. Most of you (60%) like to see more abstraction APIs, such as enhancements to Core. That’s probably why Types and Drag are the most popular More components. HtmlTable is the biggest candidate for removal (43%) followed by Accordion (34%) (ndVP: yey!). In general, you had many ideas about what to add to MooTools More, such as specific UI plugins, support for HTML5 features, geolocation, and storage.</p>
<div class="heading clearfix"><h3>Forge</h3></div><p>The Forge is pretty popular, about 65% of respondents use the Forge to a find plugin. About 11% have contributed to the Forge with new plugins. Respondents shared great ideas for improving the Forge, including: comments, ratings, better search, featured plugins or a combined (packager-web) download page which selects all dependencies.</p>
<div class="heading clearfix"><h3>API Documentation</h3></div><p>A very important part of MooTools is the online API documentation. Most of you think they are pretty good, but are also put off by the lacks of examples. We’ve heard you and that’s why we responded with our <a href="/demos/docs/null/demos" alt="fancy new demos">fancy new demos</a> which we <a href="/blog/docs/null/04/new-demos" alt="released">released</a> a few weeks ago! Our plan is to add new demos which we will use as additions to the docs. You will find links from the docs to the demos, which you can play with thanks to the <a href="http://jsfiddle.net" alt="jsfiddle">jsfiddle</a> integration. We don’t have demos of each part of Core or More yet, so if you want to help, you can fork the <a href="http://github.com/mootools/mootools-demos" alt="repository">repository</a> and add new ones, or just ping us (<a href="http://www.twitter.com/astolwijk" alt="@astolwijk">@astolwijk</a> or <a href="http://www.twitter.com/fakedarren" alt="@fakedarren">@fakedarren</a>) with new jsfiddles. Another popular idea that we particularly liked is the addition of a comment system to the API documentation.</p>
<p>I’d like to point out that you can easily start hacking on the docs if you feel so inclined. Just make sure you have a github account, fork <a href="http://www.github.com/mootools/mootools-core" alt="mootools-core">mootools-core</a> or <a href="http://www.github.com/mootools/mootools-more" alt="mootools-more">mootools-more</a>, browse to the Docs folder and select a .md file. Github has awesome online editing features, so you can work without knowing anything about GIT! If you modify a file we will see it via the network view and will include your fix into the main repository.</p>
<div class="heading clearfix"><h3>Upgrade to MooTools 1.3</h3></div><p>We are really happy to see that the release of MooTools 1.3 went smoothly and most of you are already in love with the new MooTools. One point for improvement would be to put the <a href="https://github.com/mootools/mootools-core/wiki/Upgrade-from-1.2-to-1.3" alt="upgrade">upgrade</a> tutorials on the wiki in a more prominent place on the mootools.net website.</p>
<div class="heading clearfix"><h3>The lucky winner of the T-Shirt</h3></div><p>Congratulations to the lucky winner of the awesome MooTools t-shirt. You’ll receive it shortly, and we sincerely hope you’ll wear it with pride!</p>
<p>In conclusion, thanks for all the <em>&quot;MooTools FTW!&quot;</em> responses, the cowbells suggestions, and other great feedback you guys sent us. We &lt;3 you.</p>

]]></description><pubDate>Mon, 31 Jan 2011 19:32:49 GMT</pubDate><guid isPermaLink="true">/blog/2011/01/31/survey-results</guid></item><item><title>New Demos!</title><link>/blog/2011/01/04/new-demos</link><dc:creator><![CDATA[
Darren Waddell
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>We&#39;ve been beavering away here in MooTools Towers looking though our <a href="/blog/2010/12/05/mootools-survey/">recent survey</a> results (more feedback coming soon) and one of the things that was obvious you guys and gals wanted was new demos.</p>
<p>So! Check out <a href="/demos">our new demos</a>. We hope you like them!</p>
<p>We&#39;re also delighted to be able to include full <a href="http://jsfiddle.net">jsFiddle</a> support, so you can easily view, edit and generally play with our new demos easily!</p>
<p>The entire demo runner is also available on our <a href="https://github.com/mootools/mootools-demos">GitHub repository</a>; so if you can run PHP it should be super-simple for you to get them up and running.</p>
<p>Do you have any demos you think we should add? Let us know in the comments! Or, fork it, and send us a pull request :)</p>
<p>We love our new demos and hope you do too!</p>

]]></description><pubDate>Tue, 04 Jan 2011 13:25:47 GMT</pubDate><guid isPermaLink="true">/blog/2011/01/04/new-demos</guid></item><item><title>MooTools Survey</title><link>/blog/2010/12/05/mootools-survey</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p><a href="/merch"><img src="/blog/wp-content/uploads/2010/12/tim-mootools.jpg" style="float: right; margin: 0 0 20px 20px" alt="MooTools Shirt" /></a></p>
<p>The community and the MooTools users are very important for MooTools and its development. Therefore we would love to hear who you are and how you are using MooTools. You could do this by this <a href="https://spreadsheets.google.com/viewform?formkey=dENzVXRhYUZtMFlNVUxYUVV4U09pSkE6MQ" alt="survey">survey</a>. It will take about five minutes and none of the questions are required.</p>
<p>The purpose of this survey is to help us prioritize what the development team spends its time on. We want to make MooTools as useful for you as we can. Some questions are more explicit than others, relating to where we put things or what features we should focus on more or less. Armed with this information we can dedicate our resources to the things that matter most to you.</p>
<p>Because we think your opinion is valuable, we&#39;ll be giving something in return. You can win a <strong>MooTools™ Shirt</strong>. Maybe you will look just as awesome as Tim soon!</p>
<p>The survey will be open for two or three weeks. After that time we will compile some sort of conclusion from the results and share it with you. </p>
<p>So head over to the <a href="https://spreadsheets.google.com/viewform?formkey=dENzVXRhYUZtMFlNVUxYUVV4U09pSkE6MQ" alt="survey">survey</a> and let your opinion count!</p>
<p><strong>Update:</strong> I&#39;ve just closed the survey. A huge thank you for the awesome responses!</p>

]]></description><pubDate>Sun, 05 Dec 2010 22:50:10 GMT</pubDate><guid isPermaLink="true">/blog/2010/12/05/mootools-survey</guid></item><item><title>Announcing MooTools More 1.3</title><link>/blog/2010/10/29/announcing-mootools-more-1-3</link><dc:creator><![CDATA[
Arian Stolwijk
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>We hereby announce the immediate availability of MooTools More 1.3.0.1. We have updated all of MooTools More’s code to work with the recently released Core 1.3 without 1.2 compatibility. Besides the API update, 1.3 improves stability and introduces some awesome new features.</p>
<p>Awesome new features? What awesome new features?</p>

]]></description><pubDate>Fri, 29 Oct 2010 13:41:41 GMT</pubDate><guid isPermaLink="true">/blog/2010/10/29/announcing-mootools-more-1-3</guid></item><item><title>MooTools Core 1.3 Stable and MooTools More 1.3RC</title><link>/blog/2010/10/11/mootools-core-1-3-stable-and-mootools-more-1-3rc</link><dc:creator><![CDATA[
Christoph Pojer
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Good news, everyone! We are extremely happy to announce the official release of MooTools Core 1.3 after almost a year of development. You might call us perfectionists, but we’re now ready to call the 1.3 release complete and stable. For those of you who have been waiting to make the switch, now would be the perfect time. In addition, MooTools Core 1.3 is fully backwards compatible with <em>all</em> documented functionality of MooTools Core 1.2, but more on that later.</p>

]]></description><pubDate>Mon, 11 Oct 2010 21:11:51 GMT</pubDate><guid isPermaLink="true">/blog/2010/10/11/mootools-core-1-3-stable-and-mootools-more-1-3rc</guid></item><item><title>The Journey Toward More 1.3</title><link>/blog/2010/09/22/the-journey-toward-more-1-3</link><dc:creator><![CDATA[
Sean McArthur
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>MooTools has always prided itself with the quality of its developer community, and the MooTools development team has always highly valued the opinion and input of the thousands of users who continually support the framework. With this in mind, we&#39;ve decided to provide everyone with a quick update on the recent work that the More team has been doing. Specifically, the <strong>meta</strong> things about More; the things we do to make working on MooTools More better and better.</p>
<div class="heading clearfix"><h3>MooTools More Team Has Grown and Been Busy</h3></div><p>With the help of our two newest developers, <a href="http://www.aryweb.nl/" alt="Arian">Arian</a> and <a href="http://tim.wienk.name/" alt="Tim">Tim</a>, the MooTools More team has been working hard to get More up and running with Core 1.3. Aside from updating old Core API calls, they&#39;ve been fixing a lot of the Lighthouse bugs, as well as providing new improvements like Event.Pseudos, Locale and more.</p>
<p>The last of the 1.2.x More releases has been a priority since the <a href="/blog/docs/null/15/mootools-core-1-2-5" alt="Core 1.2.5 release">Core 1.2.5 release</a>. It will come with a lot of bug fixes and a few new features. The hold up is converting all of More&#39;s tests to use the new process described below. As such, it looks like More 1.2.5.1 and More 1.3.0.1 will likely be released together.</p>
<div class="heading clearfix"><h3>Testing MooTools</h3></div><p>To help with this increased development&mdash;and to make sure less bugs squeak by&mdash;we have set up a new testing environment using the wonderful <a href="http://www.getwindmill.com/" alt="Windmill testing framework">Windmill testing framework</a>. An example of the new sandbox environment can currently be found at <a href="http://review.mootools.net:9876" alt="http://review.mootools.net:9876">http://review.mootools.net:9876</a>.</p>
<p>A couple of us have also been hard at work improving the testing throughout all the MooTools projects, but you&#39;ll just have to wait and see the awesome details in a later article.</p>
<div class="heading clearfix"><h3>Contributing is Getting Easier!</h3></div><p>With the release of GitHub&#39;s new <a href="http://github.com/blog/712-pull-requests-2-0" alt="Pull Requests system">Pull Requests system</a>, we&#39;ve found that they fit very well into the MooTools development workflow. The new system makes it easier for the developers to review pull requests, and makes the discussions associated with them public. </p>
<p>Because the MooTools community is made up of awesome developers who are more than happy to share their work and to give back to the project, we realized that this new pull request feature could be very helpful in accepting contributions from the community. As such, we are encouraging all of you to send us your pull requests for review and possible inclusion in the Core and More repositiories.</p>
<div class="heading clearfix"><h3>Big Things Happening...</h3></div><p>We hope that you&#39;re as excited as we are with what&#39;s cooking on the MooTools development front. We&#39;d like to hear your opinions, comments and suggestions in the comments section below, so don&#39;t hesitate to drop a line or two.</p>
<p>We also invite everyone to visit our official <a href="http://github.com/mootools/" alt="Github repository">Github repository</a> and drop by the official <a href="irc://irc.freenode.net/#mootools" alt="#mootools IRC Channel">#mootools IRC Channel</a> on Freenode. MooTools also has a <a href="http://twitter.com/mootools" alt="twitter account">twitter account</a> that you can follow for more news and updates.</p>
<p>And stay tuned&mdash;we have something very special coming in the next few weeks that will hopefully blow your minds.</p>
<p>Now off for a chocolate milk!</p>

]]></description><pubDate>Wed, 22 Sep 2010 19:17:55 GMT</pubDate><guid isPermaLink="true">/blog/2010/09/22/the-journey-toward-more-1-3</guid></item><item><title>MooTools Core 1.2.5</title><link>/blog/2010/09/15/mootools-core-1-2-5</link><dc:creator><![CDATA[
Djamil Legato
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we&#39;re releasing MooTools Core 1.2.5, which can be considered the last version of the 1.2 series. 1.2.5 is a maintenance release, and contains fixes for the latest beta browsers, such as <a href="http://www.mozilla.com/en-US/firefox/beta/" alt="Firefox 4 beta">Firefox 4 beta</a>, <a href="http://www.google.com/chrome" alt="Chrome 6">Chrome 6</a> and IE9 beta. Below, a quick changelog:</p>
<ul>
<li>Fix for <a href="/docs/docs/null/Element/Element.Event#Element:fireEvent" alt="fireEvent">fireEvent</a> under IE9 beta.</li>
<li>Forcing MooTools <a href="/docs/docs/null/Native/Function#Function:bind" alt="bind">bind</a> implementation to work with the latest gecko / webkit beta browsers.</li>
<li>Fixes HTML Elements creation in IE9 beta.</li>
<li>Fixed Elements garbage collection in IE.</li>
</ul>
<p>Or, if you prefer, you can have a look at the actual <a href="http://github.com/mootools/mootools-core/compare/631d0674...1.2.5" alt="code diff">code diff</a>.</p>
<p><a href="/docs/docs/null/docs/core" alt="Documentation">Documentation</a> has been updated accordingly and many new <a href="http://github.com/mootools/mootools-core-specs/tree/master/1.2/" alt="Specs">Specs</a> have been added. </p>
<p>As usual, you can <a href="/download/docs/null/download" alt="quickly download it">quickly download it</a> or <a href="/core/docs/null/core" alt="build your own version">build your own version</a>.</p>
<p>Keep an eye out for the 1.3 release in the following days!</p>

]]></description><pubDate>Wed, 15 Sep 2010 23:17:15 GMT</pubDate><guid isPermaLink="true">/blog/2010/09/15/mootools-core-1-2-5</guid></item><item><title>Setting Up Elements</title><link>/blog/2010/06/10/setting-up-elements</link><dc:creator><![CDATA[
Sean McArthur
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>Once you know <a href="/blog/docs/null/19/a-better-way-to-use-elements" alt="how much easier it is to get elements all around">how much easier it is to get elements all around</a>, you should take the time to learn how MooTools has provided a simple access API around the browser quirks for Elements. And on top of it, we&#39;ve extended this API to things that you don&#39;t normally find on Elements. And as cool as it is, you can easily add your own bits with ease.</p>
<div class="heading clearfix"><h3>Get Who? Set What?</h3></div><p>On Elements, theres only 3 getters/setters that you need to worry yourself with: <code>get</code>/<code>set</code>, <code>getStyle</code>/<code>setStyle</code>, and <code>store/retrieve</code> (we&#39;ll ignore <code>getProperty</code> for now).</p>
<div class="heading clearfix"><h5>Get/Set</h5></div><p>The most commonly used are <a href="/docs/docs/null/Element/Element#Element:get" alt="Element#get">Element#get</a> and <a href="/docs/docs/null/Element/Element#Element:set" alt="Element#set">Element#set</a>. They will first check the <code>Element.Properties</code> object to see if a specific getter/setter exists, before defaulting to <a href="/docs/docs/null/Element/Element#Element:getProperty" alt="getProperty">getProperty</a> or <a href="/docs/docs/null/Element/Element#Element:setProperty" alt="setProperty">setProperty</a>. So for instance, you can get the <code>href</code> of a link, or you can get the <code>text</code> of an element, which will get the node value in a cross browser fashion.</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">a</span> <span class="attribute">id</span>=<span class="value">"myAnchor"</span> <span class="attribute">href</span>=<span class="value">"/blog"</span>&gt;</span>Blog<span class="tag">&lt;/<span class="title">a</span>&gt;</span>
<span class="tag">&lt;<span class="title">div</span>&gt;</span>All my <span class="tag">&lt;<span class="title">span</span>&gt;</span>text<span class="tag">&lt;/<span class="title">span</span>&gt;</span><span class="tag">&lt;/<span class="title">div</span>&gt;</span>

$('myAnchor').get('href'); // '/blog'
$('myDiv').get('text'); // 'All my text'</code></pre><p>You can do as you would expect with the setters in the same way.</p>
<pre><code class="javascript">$(<span class="string">'myAnchor'</span>).set(<span class="string">'title'</span>, <span class="string">'MooTools Blog'</span>); <span class="comment">//sets title attribute</span>
$(<span class="string">'myDiv'</span>).set(<span class="string">'text'</span>, <span class="string">'other text'</span>); <span class="comment">//sets the innerHTML</span></code></pre><p>For now, let&#39;s just look at the other methods, and we&#39;ll take a look at how this works later so you can add to it yourself.</p>
<div class="heading clearfix"><h5>Setting with Style</h5></div><p>The other commonly used pair of methods are <a href="/docs/docs/null/Element/Element.Style#Element:getStyle" alt="Element#getStyle">Element#getStyle</a> and <a href="/docs/docs/null/Element/Element.Style#Element:setStyle" alt="Element#setStyle">Element#setStyle</a>. These should hopefully be self explanatory. Their benefit is that they normalize certain styles the browsers are inconsistent about, such as opacity.</p>
<div class="heading clearfix"><h3>Elemental Properties</h3></div><p>Let&#39;s take a look at an example that MooTools itself defines. The <code>style</code> property is easier to remember and read than using <code>cssText</code>, so that&#39;s what MooTools does for us.</p>
<pre><code class="javascript">Element.Properties.style = {

    set: <span class="keyword">function</span>(style){
        <span class="keyword">this</span>.style.cssText = style;
    },

    get: <span class="keyword">function</span>(){
        <span class="keyword">return</span> <span class="keyword">this</span>.style.cssText;
    }

};</code></pre><p>Seeing how the <code>style</code> object is setup, you can easily create your own. Given a <code>Person</code> class, and the given HTML, we could decide it would beneficial to be able to get the instance of a Person from an element.</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">div</span> <span class="attribute">class</span>=<span class="value">"person person_3"</span>&gt;</span>
    Sean
<span class="tag">&lt;/<span class="title">div</span>&gt;</span>
<span class="tag">&lt;<span class="title">p</span>&gt;</span>Hello<span class="tag">&lt;/<span class="title">p</span>&gt;</span></code></pre><p>Say we were to want to get a <code>Person</code> instance when we have this element. We would define the property on Element.Properties.</p>
<pre><code class="javascript">Element.Properties.person = {

    get: <span class="keyword">function</span>() {
        <span class="keyword">var</span> id = <span class="keyword">this</span>.className.match(<span class="regexp">/person_(\d+)/</span>)[<span class="number">1</span>];
        <span class="keyword">if</span>(id) <span class="keyword">return</span> Person.getById(id);
    },

    set: <span class="keyword">function</span>(person) {
        <span class="keyword">this</span>
            .addClass(<span class="string">'person'</span>)
            .addClass(<span class="string">'person_'</span>+person.id)
            .set(<span class="string">'html'</span>, person.name);
    }
};</code></pre><p>Now we can use our familiar get and set methods.</p>
<pre><code class="javascript">$(<span class="string">'TestPerson'</span>).get(<span class="string">'person'</span>); <span class="comment">// returns Person instance of ID 3.</span>
$(<span class="string">'OtherTest'</span>).set(<span class="string">'person'</span>, <span class="keyword">new</span> Person(<span class="string">'John'</span>)); <span class="comment">//turns the paragraph into a person</span>
<span class="comment">// &lt;p class="person person_4"&gt;John&lt;/p&gt;</span></code></pre><div class="heading clearfix"><h3>Let&#39;s just Store that</h3></div><p>The third pair of methods that MooTools defines for elements is <a href="/docs/docs/null/Element/Element#Element:store" alt="Element#store">Element#store</a> and <a href="/docs/docs/null/Element/Element#Element:retrieve" alt="Element#retrieve">Element#retrieve</a>. <em>Woah woah woah. What? You&#39;re telling me you can <code>get</code> properties, and you can <code>retrieve</code> them? What the heck guys?</em></p>
<p>Don&#39;t worry, it&#39;s pretty easy to know and understand the difference once I explain it. <code>get</code> and <code>set</code> are the most common methods, and default to element attributes, like I said. In many other places, such as when you use <code>el.get(&#39;tween&#39;)</code>, the MooTools teams made the getter call <code>retrieve</code> for you. You&#39;ve been accessing it, without knowing it.</p>
<blockquote><p>OK, great Sean. Why should I care how you give me the values?</p></blockquote>

<p>I hear you. You see, most of the getters/setters are used to access attributes. But what happens you want to get at or set some other kind of property. What if you want to <strong>set an actual object, or a function to the Element</strong>. I guess you could JSON encode and create a custom attribute, but that&#39;s not good practice. And you lose out on any class info of the object, in case it was an instance of something. </p>
<p>These methods also help with an issue that arises when you try to store something like an Event object or an instance of something else that refers to the Element in question. Certain browsers don&#39;t handle the circular references that well if you were to set <code>el.prop = { someEl: el }</code>. It can leave nasty memory leaks.</p>
<p>If you really want to know, behind the scenes, MooTools keeps a storage object that is totally separate from any element. Every element created gets assigned a unique id, and that id is used as a key on the storage object.</p>
<p>Regardless, you don&#39;t have to do anything special for store/retrieve to work. Using our above example, it would work like so:</p>
<pre><code class="javascript">$(<span class="string">'TestPerson'</span>).store(<span class="string">'person'</span>, <span class="keyword">new</span> Person(<span class="string">'Sean'</span>));
$(<span class="string">'TestPerson'</span>).retrieve(<span class="string">'person'</span>); <span class="comment">//returns the exact same Person instance</span></code></pre><p>These two common pairs of methods actually have a third method that relates to each of them, which allows the destruction of each respective data location. These methods are <a href="/docs/docs/null/Element/Element#Element:erase" alt="Element#erase">Element#erase</a> and <a href="/docs/docs/null/Element/Element#Element:eliminate" alt="Element#eliminate">Element#eliminate</a>.</p>
<div class="heading clearfix"><h3>Apply this yourself</h3></div><p>This all sounds great, I&#39;m sure. Now when you&#39;re writing your own classes and <a href="/forge/docs/null/forge" alt="plugins">plugins</a>, you can be sure to use the pre-packaged properties. However, it&#39;s much more powerful when you can find a useful property to <strong>add</strong> that relates to your own plugins.</p>
<p><em>Sean McArthur is a software developer at Blazonco.com who is madly in love with MooTools. Most of his contributions involve sharing tips and information about MooTools (and programming in general) at his <a href="http://seanmonstar.com" alt="blog">blog</a> and on <a href="http://twitter.com/seanmonstar" alt="Twitter">Twitter</a>.</em></p>

]]></description><pubDate>Fri, 11 Jun 2010 04:16:36 GMT</pubDate><guid isPermaLink="true">/blog/2010/06/10/setting-up-elements</guid></item><item><title>MooTools Core 1.3 beta 2</title><link>/blog/2010/06/03/mootools-core-1-3-beta-2</link><dc:creator><![CDATA[
Christoph Pojer
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Over the past couple of weeks we have got a lot of great responses over the initial beta of MooTools Core 1.3. We have since
improved both the code and the documentation in order to release a second beta. </p>
<p>Most notably we have removed the dependency on Hash. If you build 1.3 without compatibility you won&#39;t get
the Hash object no more. But fear not, we have added <a href="http://github.com/mootools/mootools-core/tree/1.3b2/Source/Types/Object.js" alt="Object.js">Object.js</a> which brings you all the Hash methods as generics. Everything else is really minor, has to do with stability or was meant to improve code quality (<a href="http://github.com/mootools/mootools-core/commit/d5bf4d62c4b9515b8aa168b7c0a2f911650a73ed" alt="we">we</a> <a href="http://github.com/mootools/mootools-core/commit/e05f35b8f009ee5587da942a398c142b0179befb" alt="really">really</a> <a href="http://github.com/mootools/mootools-core/commit/172779f92d4123b88cf3b95fea2c3b16e63a2b2a" alt="take">take</a> <a href="http://github.com/mootools/mootools-core/commit/16fd136c59ce6ee17612863132ef386be3ec968f" alt="this">this</a> <a href="http://github.com/mootools/mootools-core/commit/7e1dbb68596a7cf0ad706a278e9ec595d5930e35" alt="seriously">seriously</a>).</p>
<p>We are trying hard to provide you with a consistent and meaningful API so we have decided to introduce one tiny tweeny minor breaking change. If you were setting <code>tween</code>, <code>morph</code>, <code>load</code>, or <code>send</code> options using the getter (<code>element.get(&#39;tween&#39;, {...options here...})</code>) that will not work anymore. You will have to use <code>set</code>(<code>element.set(&#39;tween&#39;, {...options here...})</code>), as <code>get</code> needs to be a pure getter.</p>
<p>All in all the new beta is faster, better, more stable - in a word - sexier. Tell us how it works for you.</p>
<div class="heading clearfix"><h3>Download</h3></div><ul>
<li>Download the <a href="/download/docs/null/get/mootools-core-1.3b2.js" alt="built 1.3 beta 2 release">built 1.3 beta 2 release</a>.</li>
<li><a href="http://github.com/mootools/mootools-core/tree/1.3b2" alt="Fork / clone MooTools 1.3">Fork / clone MooTools 1.3</a> from github, and build it yourself with <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a>.</li>
<li>Read the commit logs to <a href="http://github.com/mootools/mootools-core/commits/1.3b2" alt="see what has changed">see what has changed</a>.</li>
<li>Wondering how those amazing new methods are called? You can <a href="http://github.com/mootools/mootools-core/tree/1.3b2/Docs/" alt="browse our markdown documentation">browse our markdown documentation</a> right on github.</li>
<li>And don&#39;t forget to <a href="https://mootools.lighthouseapp.com/projects/2706-mootools/tickets" alt="report any issue">report any issue</a> you find with the beta, compatibility or not! The more reports we get, the fastest we&#39;ll have a final release.</li>
</ul>
<p>Thanks to everyone who helped polishing the 1.3 release.
I would really like to thank <a href="http://www.aryweb.nl/">Arian Stolwijk</a> (<a href="http://twitter.com/astolwijk">@astolwijk</a>) who has contributed significant improvements to the documentation.</p>

]]></description><pubDate>Fri, 04 Jun 2010 03:46:19 GMT</pubDate><guid isPermaLink="true">/blog/2010/06/03/mootools-core-1-3-beta-2</guid></item><item><title>A Magical Journey into the Base Fx Class </title><link>/blog/2010/05/18/a-magical-journey-into-the-base-fx-class</link><dc:creator><![CDATA[
Ryan Florence
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<div class="heading clearfix"><h3>Fx is not just for animating elements</h3></div><p>In a <a href="http://www.capitaloneventure.com" alt="recent project">recent project</a> I worked on with Thomas Aylott the page did some calculations and displayed the result after the user pulled some sliders around.  Rather than just change the text from one number to another, the element would increment the number before the user&#39;s very eyes.  With a fun interface like that, they had no choice but to apply for a new credit card right then.</p>
<p>Admittedly, I may not have thought to extend Fx to do something like that.  After all, the first line of the docs for Fx is: &quot;This Class will rarely be used on its own, ...&quot;  My first thought would be to use a periodical with a counter and then set the text until the counter was done.  But Thomas extended Fx instead.  Though it&#39;s the base class for all animations (tween, morph, scroller, etc.) its methods can be used for all sorts of abstract &quot;animations.&quot;</p>
<p>For this article I&#39;ve just come up with a few potentially useful extensions of Fx to get the idea across that you can use it for more than just element animations.</p>
<div class="heading clearfix"><h3>How Fx Works</h3></div><p>Essentially Fx just calculates a sequence of values between two numbers.  The options kick in to make those values more interesting.  This class, Fx.Log, simply updates the text of an element every step of the effect.  Notice that this class is essentially the base Fx class except for the tiny set method.</p>
<iframe style="width: 100%; height: 340px" src="https://jsfiddle.net/rpflorence/xkBSW/embedded/"></iframe>

<p>Here&#39;s another demo that visualizes all the visible options of Fx.  After you draw the effect, hover the dots to see the exact value calculated (or view source and see them all together.)  Playing around with this demo might tell you more about how Fx works than anything else out there.</p>
<iframe style="width: 100%; height: 550px" src="https://jsfiddle.net/rpflorence/xjJu8/3/embedded/"></iframe>

<div class="heading clearfix"><h3>Fx.Diff</h3></div><p>By default, Fx uses 50 fps.  So every second it&#39;ll kick out 50 different values and fire the set method 50 different times.  For the next few demos I only wanted to do something if the rounded value is different than the last rounded value, so I came up with <code>Fx.Diff</code>.  If the value is different, it&#39;ll call the render method.</p>
<pre><code class="javascript">Fx.Diff = <span class="keyword">new</span> Class({

    Extends: Fx,
    count: <span class="number">0</span>,
    render: $empty,

    set: <span class="keyword">function</span>(now){
        now = now.round();
        <span class="keyword">var</span> diff = now - <span class="keyword">this</span>.count;
        <span class="keyword">if</span> (diff) {
            <span class="keyword">this</span>.render(diff, now);
            <span class="keyword">this</span>.count += diff;
        }
        <span class="keyword">return</span> <span class="keyword">this</span>;
    }

});</code></pre><div class="heading clearfix"><h3>Fx.Count</h3></div><p>Since this appears to be no different than the very first demo, we&#39;ll just look at the code.  Note, the difference is that the first counting demo would change the text in the element every single frame (50 times a second), but this code would only change it if the new rounded value is different from the last.</p>
<pre><code class="javascript">Fx.Count = <span class="keyword">new</span> Class({

    Extends: Fx.Diff,

    initialize: <span class="keyword">function</span>(element, options){
        <span class="keyword">this</span>.element = document.id(element);
        <span class="keyword">this</span>.parent(options);
    },

    render: <span class="keyword">function</span>(){
        <span class="keyword">this</span>.element.set(<span class="string">'text'</span>, <span class="keyword">this</span>.count);
        <span class="keyword">return</span> <span class="keyword">this</span>;
    }

});</code></pre><div class="heading clearfix"><h3>Fx.Typewriter</h3></div><p>I can actually see myself using this one somewhere:</p>
<iframe style="width: 100%; height: 500px" src="https://jsfiddle.net/rpflorence/2xcUu/1/embedded/"></iframe>

<p>Notice that Fx.Typewriter overwrites the <code>start</code> method of Fx.  The Fx start method takes two arguments, <code>from</code> and <code>to</code>.  The usage for Fx.Typewriter is to simply pass in a string of text like so: <code>myFx.start(&#39;A whole bunch of text&#39;)</code>.  This new method knows the <code>from</code> argument is always 0, splits up the text into an array (one item per character) and then uses that length as the <code>to</code> argument.  After that logic is done, it simply calls the parent start method.  Then  the <code>render</code> method takes over by figuring out how many characters to display, filtering out the tail end of the array, joining what matters, and finally setting the text of our element.</p>
<div class="heading clearfix"><h3>Fx.Text</h3></div><p>There&#39;s a very creative effect called <a href="/forge/docs/null/p/fx_text" alt="Fx.Text on the forge">Fx.Text on the forge</a>.  It&#39;s an animated text replacement effect.  I think it&#39;s really cool and does a great job of extending Fx.</p>
<div class="heading clearfix"><h3>Fx.Cornify</h3></div><p>This next script is far too magical to simply show you the code.  You&#39;ll need to view the source for this beauty.</p>
<form id="cornifyOptions">
    <p>
        How many? (caution, start with low numbers) <input id="amount" type="text" value="10">
    </p>
    <p>
        Duration: <input type="text" id="duration" value="10000">
    </p>
    <p>
    <input type="submit" value="Cornify!"> <span id="bePatient"></span>
    </p>
</form>


<script type="text/javascript"><!--
Fx.Diff = new Class({

    Extends: Fx,

    count: 0,
    render: $empty,

    set: function(now){
        now = now.round();
        var diff = now - this.count;
        if (diff) {
            this.render(diff, now);
            this.count += diff;
        }
        return this;
    }

});

Fx.Cornify = new Class({

    Extends: Fx.Diff,

    initialize: function(options){
        this.loaded = false;
        new Element('script', { 
            src: 'http://www.cornify.com/js/cornify.js'
        }).inject($(document.body));

        this.addEvent('start',function(){
            if (!this.iFrame) {
                this.iFrame = new Element('iframe', {
                    src: 'http://www.soundclick.com/player/single_player.cfm?songid=721192&cache=3&q=hi&shuffle=false',
                    width: 1,
                    height: 1,
                    frameborder: 0,
                    styles: {
                        width: 0,
                        height: 0
                    }
                }).inject($(document.body))    
            }
        }.bind(this));

        this.parent(options);
    },

    start: function(amount){
        this.parent(0, amount);
        return this;
    },

    render: function(){
        cornify_add();
    }

});

var myCornify;
window.addEvent('domready',function(){

    myCornify = new Fx.Cornify();

    $('cornifyOptions').addEvent('submit', function(event){
        event.stop();
        window.scrollTo(0,0);
        myCornify.options.duration = $('duration').value.toInt();
        myCornify.start($('amount').value.toInt());
        $('bePatient').set('text', 'Be patient!');
    });

});
// --></script>

<p><em>Ryan Florence is a MooTools enthusiast and contributor.  He maintains his JavaScript focused <a href="http://ryanflorence.com" alt="blog">blog</a>, <a href="http://moodocs.net" alt="MooDocs.net">MooDocs.net</a>, and <a href="http://moo4q.com" alt="moo4q">moo4q</a>.  Follow him on <a href="http://twitter.com/ryanflorence" alt="twitter">twitter</a> or checkout his plugins on the <a href="/forge/docs/null/profile/rpflo" alt="Forge">Forge</a>.</em></p>

]]></description><pubDate>Tue, 18 May 2010 16:46:10 GMT</pubDate><guid isPermaLink="true">/blog/2010/05/18/a-magical-journey-into-the-base-fx-class</guid></item><item><title>Announcing: MooTools in Real Life</title><link>/blog/2010/05/05/mootools-in-real-life</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>If you&#39;ve been paying attention for the past few years, you&#39;ve probably noticed the growth of MooTools, both as a project and as a thriving community.  Unfortunately, it has come to light that many so called &quot;members&quot; of the JavaScript community may, in fact, be automata.</p>
<p>To protect ourselves and the MooTools community, we&#39;ve started two physical screening programs (or &quot;meetups&quot;), one in London and the other in the heart of Silicon Valley.</p>
<p>In a surprising turn of events, both groups have had very informative meetings in which <em>actual people</em> have shown up, allowing us to conclusively state that at least some of the members of the MooTools community are, in fact, human.  Insightful discussions were had by all, new users and advanced developers alike.</p>
<p>If you&#39;re in the Bay Area or London, it is imperative that you attend at least one of our screening sessions, to verify yourself as human.  To be notified about future meetups, as well as voice your opinion on when/where they should be, you can join the Meetup.com group for your area:</p>
<ul>
<li><a href="http://www.meetup.com/MooToolsLondon/" alt="MooTools London">MooTools London</a></li>
<li><a href="http://www.meetup.com/MooToolsBayArea/" alt="MooTools Bay Area">MooTools Bay Area</a></li>
</ul>
<h3>Anything Interesting to Share?</h3>

<p>If you have something insightful and MooTools-related to share, and think you can spin it into a fifteen minute presentation, please let us know.</p>
<p>Right now, we don&#39;t have any formal communication set up, but it shouldn&#39;t be to hard to get in touch with either Darren (London) or myself (Bay Area).  Contact information can be found on <a href="/developers/docs/null/developers" alt="the developers page">the developers page</a>.</p>
<p>Thanks for using MooTools, and we hope to see you there!</p>

]]></description><pubDate>Wed, 05 May 2010 17:52:49 GMT</pubDate><guid isPermaLink="true">/blog/2010/05/05/mootools-in-real-life</guid></item><item><title>More than Meets the Eye: Form Validator</title><link>/blog/2010/04/30/more-than-meets-the-eye-form-validator</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
features
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>Continuing with my &quot;More than Meets the Eye&quot; series, today I want to talk to you about the <a href="/docs/docs/null/Forms/Form.Validator" alt="MooTools More &lt;code&gt;Form.Validator&lt;/code&gt;">MooTools More <code>Form.Validator</code></a>. There was a comment left on my <a href="/blog/docs/null/04/more-than-meets-the-eye" alt="last post in this series (about &lt;code&gt;Form.Request&lt;/code&gt;)">last post in this series (about <code>Form.Request</code>)</a> specifically requesting that I cover this relatively complex plugin that&#39;s useful for telling users about the validity of data they enter into forms before they send them.</p>
<div class="heading clearfix"><h3>Getting Started with Validators</h3></div><p>The main class you need to concern yourself with is the <code>Form.Valdiator</code> class itself which provides methods that apply specific rules to inputs to see if they are valid. You can then choose how you want to inform your users that they need to address these problems, but that&#39;s not the job to <code>Form.Validator</code> (though it is the job of <code>Form.Validator.Inline</code>, which we&#39;ll cover in a bit).</p>
<p>Let&#39;s talk little bit about the rules that are applied. Form.Validator allows you to define rules that test the state of an input and return <code>true</code> or <code>false</code> - <code>true</code> if the input passes the validation rule, and <code>false</code> if it doesn&#39;t. Here&#39;s a simple example:</p>
<pre><code class="javascript">Form.Validator.add(<span class="string">'doesNotContainTheLetterQ'</span>, {
        errorMsg: <span class="string">'This field cannot contain the letter Q!'</span>,
        test: <span class="keyword">function</span>(field){
                <span class="keyword">return</span> !field.get(<span class="string">'value'</span>).test(<span class="regexp">/q/</span>,<span class="string">'i'</span>);
        }
});</code></pre><p>The above code adds a global validator that allows you to assert that the input doesn&#39;t use the letter Q. The arguments are the validators&#39; key and then an object that contains an error message to show the user should they encounter the error, and a function that is passed the input as an argument. This function inspects the value or, really, anything you like, and then returns <code>true</code> or <code>false</code>.</p>
<p>The key you give your validator is important. At any time you can validate a field against any validator by using this key as a reference by doing:</p>
<pre><code class="javascript">myFormValidator.test(key, input[, warnOnly]);</code></pre><p>The first two arguments are the important ones here; the key of your validator and the input to test. Where things get interesting are when <code>Form.Validator</code> does this for you. By giving your input that key as a css class name, you tell <code>Form.Validator</code> to validate that field with this validator. In this manner you can quickly and unobtrusively decorate your inputs with the requirements and validate the form. If something goes wrong with your JavaScript, your form will submit as normal. Here&#39;s a really simple example:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/6RUpY/embedded/"></iframe>

<p>The alerts aren&#39;t pretty, but you can see how our validator is now applied when you submit the form.</p>
<p>Form.Validator ships with <a href="/docs/docs/null/Forms/Form.Validator#Validators" alt="several validators listed in the documentation">several validators listed in the documentation</a>. These include simple stuff like <code>required</code> that just validates that the user put something - anything - in the input. But there are also validators for email addresses, only letters, dates, urls, etc. The key is you can write your own - you don&#39;t need to wait for us to release something for you to make use of it. There are an extended list of validators in <a href="/docs/docs/null/Forms/Form.Validator.Extras" alt="&lt;code&gt;Form.Validator.Extras&lt;/code&gt;"><code>Form.Validator.Extras</code></a> that include some edge cases. Things like validating that two inputs have the same value (like an email verification for example). </p>
<div class="heading clearfix"><h3>Using Validators with Arguments</h3></div><p>It&#39;s also possible to configure validators with data unique to the input. For example, let&#39;s say you want to have an input with a minimum length validator - the user must type in at least 5 characters. You could write a validator called <code>minimum5</code> or whatever, but then you&#39;d have to duplicate it for any other character length. For this purpose, Form.Validator allows you to assign values to the input, like so:</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"text"</span> <span class="attribute">name</span>=<span class="value">"username"</span> <span class="attribute">class</span>=<span class="value">"minLength:10"</span> <span class="attribute">id</span>=<span class="value">"username"</span>/&gt;</span></code></pre><p>These values - the 10 and 100 values in the example above - get passed along as JSON decoded values to the validator. Here&#39;s what that looks like:</p>
<pre><code class="javascript">Form.Validator.add(<span class="string">'minLength'</span>, {
    errorMsg: <span class="keyword">function</span>(element, props){
        <span class="keyword">return</span> <span class="string">'Please enter at least {minLength} characters (you entered {length} characters).'</span>.substitute({minLength:props.minLength,length:element.get(<span class="string">'value'</span>).length });
    },
    test: <span class="keyword">function</span>(element, props){
        <span class="keyword">if</span> (props.minLength != <span class="literal">null</span>) <span class="keyword">return</span> (element.get(<span class="string">'value'</span>).length &gt;= props.minLength;
        <span class="keyword">else</span> <span class="keyword">return</span> <span class="literal">true</span>;
    }
});</code></pre><p>As you can see, the error message (which in our previous validator was just a string - the message) can also be a function which is passed the input and then any properties defined in the HTML. The fact that the message can be a function allows you to include information not only about how the validator is configured but also other information, like some aspect of the value the user actually entered. The test is also passed along these p roperties of course which allows you to make the properties a condition of the test. We could, in theory, rewrite our <code>doesNotContainTheLetterQ</code> validator to accept an argument about the character (or, better yet, characters) that we want to disallow:</p>
<pre><code class="javascript">Form.Validator.add(<span class="string">'doesNotContain'</span>, {
    errorMsg: <span class="keyword">function</span>(field, props){
        <span class="keyword">return</span> <span class="string">'The value you input cannot contain any of the following letters: '</span> + props.doesNotContain;
    },
    test: <span class="keyword">function</span>(field, props){
        <span class="keyword">if</span> (props.doesNotContain)
            <span class="keyword">return</span> !field.get(<span class="string">'value'</span>).match(<span class="keyword">new</span> RegExp(<span class="string">'['</span> + props.doesNotContain + <span class="string">']'</span>, <span class="string">'i'</span>));
        <span class="keyword">else</span> <span class="keyword">return</span> <span class="literal">true</span>;
    }
});</code></pre><p>Note that the properties defined have to be JSON decodable, so you can&#39;t have your input like this:</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"text"</span> <span class="attribute">class</span>=<span class="value">"doesNotContain:qz"</span>/&gt;</span></code></pre><p>Instead you&#39;d have to quote the string:</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">input</span> <span class="attribute">type</span>=<span class="value">"text"</span> <span class="attribute">class</span>=<span class="value">"doesNotContain:'qz'"</span>/&gt;</span></code></pre><p>Here&#39;s our example:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/8DCK8/embedded/"></iframe>

<p>The base <code>Form.Validator</code> class comes with a plethora of options and events. You can configure it to validate inputs whenever they change (on blur), or to only show one error at a time (serial). You can tell it to ignore hidden fields (those that are not visible, there&#39;s no point in validating inputs with type=&quot;hidden&quot;) and disabled inputs. There are numerous useful methods that let you run the entire validation routine on the form (<code>.validate()</code>), reset all the errors (<code>.reset()</code>) or validate / reset a specific field (<code>.validateField()</code> and <code>.resetField()</code>). You can pause the validator and resume it (<code>.stop()</code> and <code>.start()</code>) as well as ignore / un-ignore a specific field (<code>.ignoreField()</code> and <code>.enforceField()</code>) and more. There&#39;s even an element method that lets you validate a form (<code>Element.prototype.validate</code>).</p>
<div class="heading clearfix"><h3>Form.Validator.Inline - the &quot;Pretty&quot; One</h3></div><p>Now that we&#39;ve covered the basics of how <code>Form.Validator</code> works, let&#39;s consider the fact that our examples so far have been rather ugly (who wants alert messages?). MooTools More ships with a default implementation that smoothly displays messages inline, right after the input: <a href="/docs/docs/null/Forms/Form.Validator.Inline" alt="&lt;code&gt;Form.Validator.Inline&lt;/code&gt;"><code>Form.Validator.Inline</code></a>. This class is the &quot;pretty&quot; version of <code>Form.Validator</code> but don&#39;t think of it as the only game in town. You can easily implement your own &quot;pretty&quot; version without a lot of effort. If you want to put errors in a popup or fade them in over the entire screen or play a sound it doesn&#39;t matter. The base <code>Form.Validator</code> class is there for you.</p>
<p>Looking at the <code>Form.Validator.Inline</code> implementation, you&#39;ll find all the same options and methods from <code>Form.Validator</code> along with a few extras that control how your messages appear. For instance, by default, the validation rules show up immediately after the input. This requires a bit of forethought in how you structure your HTML. If your input is inline with something else (like a submit button), validation errors are going to change that when they appear (because they are divs, which by default are block level elements).</p>
<p>The only real option that <code>Form.Validator.Inline</code> has to offer is whether or not to scroll to errors (useful if your form is long and will likely cause the user to scroll to the submit button). Here&#39;s a simple example, building on our previous one:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/LGqut/embedded/"></iframe>

<p>As you can see, the error message slides in, but it breaks our layout a bit. Let&#39;s do some CSS work to make this look a little nicer.</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/CT6A7/embedded/"></iframe>

<p>It&#39;s not The Sistine Chapel but it does look nicer. Our error doesn&#39;t appear to break our layout anymore either.</p>
<p>As a final example, I&#39;ll show you a version that extends <code>Form.Validator.Inline</code> to put the validation messages in tips that popup pointing at the input. Here&#39;s a demo:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/6E2Lg/embedded/"></iframe>

<p>If you want you can <a href="http://github.com/anutron/clientcide/blob/master/Source/Forms/Form.Validator.Tips.js" alt="check out the source on github">check out the source on github</a> and <a href="http://clientcide.com/js" alt="download it with its dependencies on Clientcide">download it with its dependencies on Clientcide</a>.</p>
<div class="heading clearfix"><h3>Go Forth and Validate</h3></div><p>Overall the purpose of <code>Form.Validator</code> is not to be the only solution for displaying validation messages to your users, but rather a flexible solution for client side form validation on which to build. You can extend it and manipulate it to display messages in any way you choose - and you should!. The default &quot;pretty&quot; implementation - <code>Form.Validator.Inline</code> - is just one way to use the class. In my opinion <code>Form.Validator</code> is one of the classes in MooTools More that shows off the power of MooTools&#39; object oriented design, allowing for a great deal of flexibility and reuse.</p>
<p>Thanks to <a href="/blog/docs/null/04/more-than-meets-the-eye#comment-908" alt="Lloyd for suggesting this edition&amp;#39;s topic">Lloyd for suggesting this edition&#39;s topic</a>. If there&#39;s a plugin in MooTools More you&#39;d like me to focus on next time, by all means, make a suggestion in the comments.</p>
<p><em>Aaron Newton is a contributor to MooTools and the principal developer of MooTools More. He is the author of the book <strong>MooTools Essentials</strong> as well as the <a href="http://mootorial.com" alt="Mootorial">Mootorial</a> online MooTools tutorial. He posts (rarely these days) at his blog <a href="http://clientcide.com" alt="Clientcide.com">Clientcide.com</a> and (much more often) on Twitter as <a href="http://twitter.com/anutron" alt="anutron">anutron</a>. He works for <a href="http://www.cloudera.com" alt="Cloudera">Cloudera</a>, (which is hiring, by the way).</em></p>

]]></description><pubDate>Fri, 30 Apr 2010 20:09:03 GMT</pubDate><guid isPermaLink="true">/blog/2010/04/30/more-than-meets-the-eye-form-validator</guid></item><item><title>MooTools 1.3 βeta 1</title><link>/blog/2010/04/27/mootools-1-3-beta-1</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>MooTools 1.3 beta 1 launches today. Lots of bug fixes and improvements, and all that jazz. Before presenting you with a random rundown of features, let me be clear about something: MooTools 1.3 is (or will be) 100% compatible with every public documented API of MooTools 1.2. So chill already.</p>
<p>Anyways, here&#39;s what&#39;s new:</p>
<div class="heading clearfix"><h3>Globals</h3></div><p>MooTools 1.3 moves away from the <code>$name</code> functions. Most of the useless ones, such as <code>$chk</code> (god knows why I thought it was a good idea to have <code>$chk</code>), were completely nixed. Some of them moved to the proper object&#39;s namespace (<code>$merge</code> » <code>Object.merge</code>, <code>$pick</code> » <code>Array.prototype.pick</code>). Some others were renamed without the stupid <code>$</code> in front (<code>$type</code> » <code>typeOf</code>, <code>$defined</code> » <code>nil</code>). In the end, there are a lot less global variables now. You can refer to the 1.3 documentation to have a proper list of what&#39;s changed. Keep in mind that the old version of the methods will still work, by default. There will be a way in the future to &quot;compile&quot; MooTools without the compatibility stuff, but the feature is not ready yet.</p>
<div class="heading clearfix"><h3>From types with love</h3></div><p>Every native type has now a <code>from</code> method that will try to convert every object passed to that type. <code>Array.from</code>, for instance, replaces both <code>$A</code> and <code>$splat</code>. <code>Function.from</code> will return a function that returns the passed in value, if it wasn&#39;t a function itself. <code>String.from</code>... well you know that at this point, don&#39;t you? We also changed how we internally handle Native types, but that should be none of your concerns, since they were handled with private apis anyways.</p>
<div class="heading clearfix"><h3>Generating your own MooTools, from your own computer</h3></div><p>It is now possible, easy, and even perhaps recommended to generate MooTools (and its plugins) yourself. Last few months I&#39;ve been working, on and off, on a pretty advanced projects-builder. It&#39;s called Packager, it supports multiple project dependancies and has a very similar syntax of what&#39;s used in the Forge right now. It&#39;s written in php and you can use it from your php webpages to dynamically include JavaScripts for development, or you can build a single .js for production from the command line.</p>
<p>If you care to build MooTools and MooTools projects for yourself, you should take these steps:</p>
<ol>
<li>Clone <a href="http://github.com/mootools/mootools-core/tree/1.3b1.1" alt="MooTools 1.3b1.1">MooTools 1.3b1.1</a> from github.</li>
<li>Clone whatever other Packager-ready MooTools project from github (<a href="http://github.com/kamicane/mootools-color" alt="color">color</a>, <a href="http://github.com/kamicane/mootools-table" alt="table">table</a> and <a href="http://github.com/kamicane/mootools-touch" alt="touch">touch</a>, for instance, are my Packager-ready plugins).</li>
<li>Clone <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a> itself from github.</li>
<li>Read Packager&#39;s <a href="http://github.com/kamicane/packager/blob/master/README.md" alt="README">README</a>. Pretty much everything you need to know is in there.</li>
</ol>
<p>Ofcourse, Packager itself is not limited to MooTools, MooTools plugins or just javascript projects. A tutorial post on how to use Packager for development is coming soon (few years tops).</p>
<p>If you dislike php, worry not! There is also a Django builder, called Depender, written by our <a href="http://www.clientcide.com/" alt="Aaron Newton">Aaron Newton</a>, on github as well. I really don&#39;t know how it works, as I don&#39;t do python, but I do know it&#39;s scope is way greater than that of Packager. Depender can, for instance, dynamically build your MooTools for production use, like that. But don&#39;t take my word for it, go <a href="http://github.com/anutron/mootools-depender" alt="check it out on github">check it out on github</a>.</p>
<div class="heading clearfix"><h3>Slick</h3></div><p>The most notable new feature in 1.3 is <em>Slick</em>. <em>Slick</em> is our new, shiny, super fast, exhaustively tested, pure-javascript selector engine. There will probably be a dedicated <em>Slick</em> post in the following days (or months, given our relaxed release cycles), but here&#39;s a few Slick-facts for those who haven&#39;t checked it out already:</p>
<ul>
<li><em>Slick</em> is a MooTools-family project by MooTools developers <a href="http://subtlegradient.com/" alt="Thomas Aylott">Thomas Aylott</a>, <a href="http://www.meiocodigo.com/" alt="Fabio Costa">Fabio Costa</a> and <a href="https://github.com/kamicane" alt="yours truly">yours truly</a>. It can be <a href="http://github.com/mootools/slick" alt="forked from github">forked from github</a>, free of charge!</li>
<li><em>Slick</em> is an incredibly advanced evolution of our previous selector engine.</li>
<li><em>Slick</em> is written using only pure-javascript, none of the MooTools apis are required. It can be used in any project or framework, and it does not require MooTools to function (though the MooTools DOM components do require <em>Slick</em>).</li>
<li><em>Slick</em> is speedy, blows away the 1.2 selector engine by 50%, at least. We will give you detailed data in the post dedicated to <em>Slick</em>.</li>
<li><em>Slick</em> supports every selector you can think of. Seriously, every one of them. I promise you.</li>
<li><em>Slick</em> is customizable, you can make your own pseudo-selectors, your own attribute-selectors, and many more your-own kinds of things.</li>
<li><em>Slick</em> supports reversed combinators. You might not know what they are, but they are pretty darn cool.</li>
<li><em>Slick</em> has a <a href="http://github.com/mootools/slick/blob/master/Slick.Parser.js" alt="detached parser">detached parser</a>. You can parse a css-style-selector string and get back a property-filled object.</li>
<li><em>Slick</em> perfectly supports XML documents.</li>
<li><em>Slick</em> is slick!</li>
</ul>
<p>On another note, thanks to the <em>Slick</em>&#39;s parser, you will be able to build an element using a css selector. Let me give you an example of this cool new feature (courtesy of our amazing <a href="http://cpojer.net" alt="Christoph Pojer">Christoph Pojer</a>):</p>
<div class="heading clearfix"><h4>Creating an element using an object (the 1.2 way):</h4></div><pre><code class="javascript"><span class="keyword">new</span> Element(<span class="string">"input"</span>, {<span class="string">"id"</span>: <span class="string">"someID"</span>, <span class="string">"class"</span>: <span class="string">"someClass1 someClass2"</span>, <span class="string">"disabled"</span>: <span class="literal">true</span>});</code></pre><div class="heading clearfix"><h4>Creating an element using a selector string (the coolest way):</h4></div><pre><code class="javascript"><span class="keyword">new</span> Element(<span class="string">"input#someID.someClass1.someClass2[disabled=true]"</span>);</code></pre><div class="heading clearfix"><h3>In conclusion</h3></div><p>As I get back to work on an exciting number of totally amazing upcoming MooTools projects that you know nothing about because <a href="http://github.com/kamicane" alt="you don&amp;#39;t follow me on github">you don&#39;t follow me on github</a>, I&#39;ll leave you with a few useful 1.3 links:</p>
<ul>
<li>Download the <a href="/download/docs/null/get/mootools-core-1.3b1.1.js" alt="built 1.3 beta 1 release">built 1.3 beta 1 release</a>.</li>
<li><a href="http://github.com/mootools/mootools-core/tree/1.3b1.1" alt="Fork / clone MooTools 1.3">Fork / clone MooTools 1.3</a> from github, and build it yourself with <a href="http://github.com/kamicane/packager" alt="Packager">Packager</a>, or <a href="http://github.com/anutron/mootools-depender" alt="Depender">Depender</a>.</li>
<li>If you want a full changelog, go <a href="http://github.com/mootools/mootools-core/commits/1.3b1.1" alt="read the git history">read the git history</a>, you lazy bastard. Changelogs are so 2001.</li>
<li>Wondering how those amazing new methods are called? You can <a href="http://github.com/mootools/mootools-core/tree/1.3b1.1/Docs/" alt="browse our markdown documentation">browse our markdown documentation</a> right on github.</li>
<li>And don&#39;t forget to <a href="https://mootools.lighthouseapp.com/projects/2706-mootools/tickets" alt="report any issue">report any issue</a> you find with the beta, compatibility or not! The more reports we get, the fastest we&#39;ll have a final release.</li>
</ul>
<p><strong>UPDATE</strong>: There was a &quot;merge&quot; problem with beta1, so we quickly fixed it and re-tagged <a href="http://github.com/mootools/mootools-core/tree/1.3b1.1" alt="beta 1.1">beta 1.1</a>.</p>
<p>Have fun with 1.3! I know I will.</p>
<p>Valerio</p>

]]></description><pubDate>Tue, 27 Apr 2010 23:25:06 GMT</pubDate><guid isPermaLink="true">/blog/2010/04/27/mootools-1-3-beta-1</guid></item><item><title>Object Oriented jQuery with MooTools @ jQuery Conference</title><link>/blog/2010/04/27/object-oriented-jquery-with-mootools-jquery-conference</link><dc:creator><![CDATA[
Ryan Florence
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Hey there MooToolers.  I just returned from speaking at jQuery Conference 2010 in San Francisco on &quot;Object Oriented jQuery with MooTools&quot; and thought I&#39;d share some notes on the experience.  </p>
<div class="heading clearfix"><h3>My Talk</h3></div><p>If you ask me how I did I&#39;d say I missed a few connecting ideas but got the concept out there and got some people thinking. Several people came up to me afterward asking how to actually give this a shot on their web apps.  Also, if you are reading this on a Mac, do this: command + option + control + 8 (⌃⌥⌘8).  I think for the first time in the history of OSX this keyboard shortcut was useful.  The projector had a hard time with my bright colored code on a black background so I inverted the the whole presentation!</p>
<p>Some of you have read my post <a href="http://ryanflorence.com/object-oriented-jquery-with-mootools-pigs-take-flight/" alt="&lt;em&gt;Pigs take flight&lt;/em&gt;"><em>Pigs take flight</em></a> about using the <code>Class</code> module from MooTools to write modular code in a way we all love but use jQuery for DOM manipulation, effects, AJAX, etc.  That was the basis of my talk.  You can find the slides and a demo at my blog <a href="http://ryanflorence.com/jquery-conference-slides-and-demo/" alt="here">here</a>.</p>
<p>The Demo is especially awesome.</p>
<div class="heading clearfix"><h3>Thoughts</h3></div><p>It was very well attended, said to be the largest JavaScript conference ever.  There were a lot of really talented people there and all of the speakers did great.  I am humbled by the ability of the jQuery team to put together great events and market their library, I&#39;d even say a bit jealous!  </p>
<p>It seems at the user level people see frameworks as rivals or something, but at the framework developer level they generally feel like we&#39;re on the same team, working to make the web better.</p>
<p>There was a lot of talk about organizing code, which is a problem that jQuery doesn&#39;t try to solve.  I don&#39;t think any other framework can step in quite like MooTools to do it and yet keep the jQuery API in tact when writing an application&#39;s code (thanks to mutators). Another testament that -core is rock solid and ridiculously versatile for JavaScript generally, not just the DOM.  I also found that a lot of people didn&#39;t know that you can create custom builds of MooTools to solve all sorts of JavaScript problems.</p>
<p>So, thanks jQuery for a great weekend!</p>
<ul>
<li><a href="http://ryanflorence.com/jquery-conference-slides-and-demo/" alt="Slides and Demo">Slides and Demo</a></li>
<li><a href="http://ryanflorence.com/object-oriented-jquery-with-mootools-pigs-take-flight/" alt="Pigs Take Flight Blog Post">Pigs Take Flight Blog Post</a></li>
<li><a href="http://events.jquery.org/2010/sf-bay-area/" alt="jQuery Conference 2010 SFO">jQuery Conference 2010 SFO</a></li>
</ul>

]]></description><pubDate>Tue, 27 Apr 2010 13:12:36 GMT</pubDate><guid isPermaLink="true">/blog/2010/04/27/object-oriented-jquery-with-mootools-jquery-conference</guid></item><item><title>Dojo and MooTools</title><link>/blog/2010/04/01/dojo-and-mootools</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Over the past several months we here at MooTools have been contemplating how much of what we do is duplicated effort. When we started this whole project years ago it was because we wanted to do things our own way, but as MooTools and JavaScript in general have progressed, we find ourselves facing the tedium of all the low lying code that has to be written to get Browsers to play nice, not to mention the richer things like our inheritance system and other utilities like effects, DomReady, etc. etc.</p>
<p>At FOSDEM we ended up hanging out with the Dojo crew. We like them; they are always doing interesting things and their framework is one that we&#39;ve always looked at and said to ourselves, &quot;If we ever needed feature X we&#39;d probably just port it from them.&quot; Anyway, at FOSDEM a group of their developers and ours got together and started brainstorming about closer ways to work together. Since then the discussion has gotten closer and closer to where we are now.</p>
<div class="heading clearfix"><h3>MooJo</h3></div><p><img src="/uploads/moojo.png" width="179" height="79" style="float: left; margin: 10px"/>
Starting today the Dojo and MooTools projects will begin merging and joining forces. Part of this is to share resources - more hands coding makes more code, right? But part of it is, well, we&#39;ll be frank, we&#39;re kind of tired of reinventing the wheel. We love the solutions in MooTools, but at the end of the day, the API is all that matters. It doesn&#39;t matter how you detect that the DOM is ready, so long as when it is your code runs. The same could be said for selector engines, XMLHttpRequest, and a whole host of other things. What this means in practical terms is that we just don&#39;t have to do as much work and, to be frank, after 4 years of working on MooTools, we&#39;re happy to cede some of the more tedious tasks to Dojo. Sure, their architecture isn&#39;t quite the same (or maybe even as good) as ours, but it works. This will free our development team&#39;s time to work on their own projects and maybe start getting paid for it, which brings us to the second point.</p>
<div class="heading clearfix"><h3>Making MooJo Profitable</h3></div><p>For the past four years we&#39;ve been writing code and releasing it for free. In our talks with the Dojo team we all agreed that all this free time donated to anyone who happened to want our work just wasn&#39;t quite worth the hassle. Don&#39;t get us wrong, writing the code is fun, but it&#39;s all the other stuff. The bug reports, the hand-holding in the forums and on IRC, the constant demand to &quot;compete&quot; with other frameworks (whatever that means). It just sucks the pleasure right out of it. We find ourselves burning nights and weekends to write code for strangers to use and it gets old.</p>
<p>Going forward, the code base will continue to be free, but access to the documentation will require a small &quot;donation&quot; (we&#39;ll probably set a really small minimum, like, say $.25) - frankly, the documentation has gotten too good to be free (we contemplated printing it and just selling it as a book, but micropayments is much more &quot;Web 2.0&quot;). Filing bugs will still be free of course. But we&#39;re working on a system that lets our users put money towards the bugs they care about the most. The bug with the most money donated gets our time and gets in the next release. We think this will cut down on both the number of bugs we get but also help manage expectations. If you have a bug that you think is important, you either need a lot of people to agree with you (which they will if the bug is really broad) or you need to pay a lot (in which case it&#39;s like you&#39;re hiring us as freelancers).</p>
<p>What will we do with the money raised? We&#39;ll probably start sponsoring more meet-ups and sending more people to conferences, but we&#39;ll also be able to compensate the developers who bring you all this great stuff. Certainly no one can argue with that.</p>
<div class="heading clearfix"><h3>Compatiblity</h3></div><p>As we begin merging functionality we&#39;ll likely retire large portions of both frameworks. MooTools has a great effects library while Dojo has a lot of solid widgets. MooTools ART will likely get shelved in favor of <code>dojo.gfx</code>, Dojo will likely drop it&#39;s effects libraries in favor of MooTools&#39; effects which are really nice, much of MooTools More will either be retired (in favor of existing Dojo widgets) or turned into Dojo widgets themselves, etc.</p>
<p>For backwards compatibility we&#39;ll be implementing the &quot;donation&quot; system as well. For the portions of the MooTools and Dojo cores that are deprecated we&#39;ll allow the users to prioritize which parts we offer compatibility for. Same goes for effects, plugins, etc. We hope this new model will encourage businesses that use our awesome frameworks to recognize the value we bring and to compensate us for our time.</p>
<p>If you have any questions, post them in the comments below. Comments are still free - we haven&#39;t implemented the &quot;donation&quot; system for them yet, either.</p>
<p><strong>Update</strong>: Yes, this was an April Fool&#39;s joke. We love Dojo and that whole team... but not <em>that</em> much.</p>

]]></description><pubDate>Thu, 01 Apr 2010 16:02:54 GMT</pubDate><guid isPermaLink="true">/blog/2010/04/01/dojo-and-mootools</guid></item><item><title>Get friendly with the Natives</title><link>/blog/2010/03/23/get-friendly-with-the-natives</link><dc:creator><![CDATA[
Ryan Florence
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>Have you extended a Native lately? It&#39;s an incredibly helpful thing. Often people write ugly functions that take a string or whatever as an argument and return some manipulation of the string. Extending natives is a great way to do the same thing, but it is much prettier (aka: explicit, readable, easier-to-debug.)</p>
<div class="heading clearfix"><h3>The Difference:</h3></div><p>I&#39;ve seen stuff like this:</p>
<pre><code class="javascript">fn1(fn2(<span class="number">10</span>, fn3(<span class="string">'house'</span>)));</code></pre><p>Hard to figure out what&#39;s happening.  Instead you can write code like:</p>
<pre><code class="javascript">fn3(<span class="string">'house'</span>).fn2(<span class="number">10</span>).fn1();</code></pre><div class="heading clearfix"><h3>A Useful, Real Example, zeroPad</h3></div><p>I&#39;ve used this in a couple scripts, it takes a number and returns a string with zeros padded in front: 123 becomes &#39;000123&#39;.  Really handy for filenames and the like.  Here&#39;s the ugly version:</p>
<div class="heading clearfix"><h3>Functionally Based Example</h3></div><pre><code class="javascript"><span class="function"><span class="keyword">function</span> <span class="title">zeroPad</span><span class="params">(num, zeros)</span>{</span>
  zeros = zeros || <span class="number">3</span>;
  <span class="keyword">var</span> str = <span class="string">''</span> + num;
  zeros.times(<span class="keyword">function</span>(){ str = <span class="string">'0'</span>+str; });
  <span class="keyword">return</span> str;
};

<span class="comment">// usage</span>
doSomething(zeroPad(document.getElementById(<span class="string">'myInput'</span>).value, <span class="number">3</span>));</code></pre><div class="heading clearfix"><h3>Native Extentions Based Example</h3></div><pre><code class="javascript">Number.implement({
  zeroPad: <span class="keyword">function</span>(zeros){
    <span class="keyword">var</span> str = <span class="string">''</span> + <span class="keyword">this</span>;
    zeros.times(<span class="keyword">function</span>(){ str = <span class="string">'0'</span>+str; });
    <span class="keyword">return</span> str;
  }
});

<span class="comment">// so that it works on both numbers and strings</span>
String.implement({
  zeroPad: <span class="keyword">function</span>(zeros){
      <span class="keyword">return</span> <span class="keyword">this</span>.toInt().zeroPad(zeros);
  }
});

<span class="comment">// usage</span>
$(<span class="string">'myInput'</span>).get(<span class="string">'value'</span>).zeroPad(<span class="number">3</span>).doSomething();</code></pre><div class="heading clearfix"><h3>Side by Side:</h3></div><pre><code class="javascript">doSomething(zeroPad(document.getElementById(<span class="string">'myInput'</span>).value, <span class="number">3</span>));
<span class="comment">// vs</span>
$(<span class="string">'myInput'</span>).get(<span class="string">'value'</span>).zeroPad(<span class="number">3</span>).doSomething();</code></pre><p>Awesome? Yes. You can do the same thing to:</p>
<ul>
<li><a href="/docs/docs/null/Native/Array" alt="Array">Array</a></li>
<li><a href="/docs/docs/null/Native/Function" alt="Function">Function</a></li>
<li><a href="/docs/docs/null/Native/Number" alt="Number">Number</a></li>
<li><a href="/docs/docs/null/Native/String" alt="String">String</a></li>
<li><a href="/docs/docs/null/Native/Hash" alt="Hash">Hash</a></li>
</ul>
<p>Some say extending natives is a bad idea.  Personally, I think it&#39;s awesome--but this topic is a sore spot for some.  Extending natives is a feature of javascript itself that any general application framework like MooTools is entitled to use.  There could be an entire article dedicated to this topic but this article isn&#39;t it.  This article is simply here to show how to use this handy feature.</p>
<div class="heading clearfix"><h3>Flippin&#39; Sweet Array methods</h3></div><p>Arian Stolwijk created this amazing gem: <a href="/forge/docs/null/p/array_math" alt="Array.Math">Array.Math</a>.  Code samples often tell the story faster:</p>
<pre><code class="javascript">[<span class="number">2</span>,<span class="number">5</span>,<span class="number">1</span>,<span class="number">6</span>].sum(); <span class="comment">// 14</span>
[<span class="number">2</span>,<span class="number">5</span>,<span class="number">6</span>,<span class="number">2</span>].product(<span class="number">3</span>); <span class="comment">// [6,15,18,6]</span>
[<span class="number">9</span>,<span class="number">12</span>,<span class="number">15</span>].quotient(<span class="number">3</span>) <span class="comment">// [3,4,5]</span></code></pre><p>This is all made possible by extending the <code>Array</code> native, see?</p>
<pre><code class="javascript">Array.implement({

        sum: <span class="keyword">function</span>(start,length){
            <span class="keyword">var</span> sum = <span class="number">0</span>, 
                start = start ? start : <span class="number">0</span>,
                length = length ? length : <span class="keyword">this</span>.count()-start;
            length = start ? length + <span class="number">2</span> : length;
            <span class="keyword">for</span>(<span class="keyword">var</span> i=start;i&amp;lt;length;i++) sum += <span class="keyword">this</span>[i];
            <span class="keyword">return</span> sum;
        },

        product: <span class="keyword">function</span>(p){
            <span class="keyword">var</span> arr = $type(p) == <span class="string">'array'</span>;
            <span class="keyword">return</span> <span class="keyword">this</span>.map(<span class="keyword">function</span>(entity,i){
                <span class="keyword">return</span> arr ? (entity * p[i]) : (entity * p);
            });
        },

        quotient: <span class="keyword">function</span>(q){
            <span class="keyword">var</span> arr = $type(q) == <span class="string">'array'</span>;
            <span class="keyword">return</span> <span class="keyword">this</span>.map(<span class="keyword">function</span>(entity,i){
                <span class="keyword">return</span> arr ? (entity / q[i]) : (entity / q);
            });
        },

        <span class="comment">// and a whole lot more awesome ...</span>

    });</code></pre><div class="heading clearfix"><h3>Quick Tips</h3></div><ul>
<li><code>this</code> is the number or string, or whatever, when inside the method.</li>
<li>Return something that makes sense (usually <code>this</code>).</li>
<li>You can implement several methods all in the same code block.</li>
</ul>
<p>This is just one more great tool to help keep your code organized and readable.</p>

]]></description><pubDate>Wed, 24 Mar 2010 02:48:56 GMT</pubDate><guid isPermaLink="true">/blog/2010/03/23/get-friendly-with-the-natives</guid></item><item><title>A Better Way to use Elements</title><link>/blog/2010/03/19/a-better-way-to-use-elements</link><dc:creator><![CDATA[
Sean McArthur
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Javascript development in the browser is all about the Elements. Manipulating the DOM happens every few lines of code. It’s important enough that some libraries provide little more than DOM enhancements. Not to worry though, MooTools provides greatly in this area as well.</p>
<div class="heading clearfix"><h3>$ and $$</h3></div><p>Most of you probably know the two document methods <code>getElementById</code> and  <code>querySelectorAll</code>; because if you do, you understand how we select elements with MooTools methods. For those of you that don’t, you provide an ID string of an element in to <code>getElementById</code>, and a CSS selector string to <code>querySelectorAll</code>.  The functions <code>$</code> (which is an alias to  <code>document.id</code>, see this post on <a href="/blog/docs/null/22/the-dollar-safe-mode" alt="Dollar Safe Mode">Dollar Safe Mode</a> for details) and <code>$$</code> are basically equivalent to <code>getElementById</code> and <code>querySelectorAll</code>, respectively. Of course, since it’s MooTools,  <em>they’re more than that</em>. </p>
<p>The dollar function, if given a string, will basically call <code>getElementById</code> on the document. If passed an element, it will just return the element, and  if you pass an object with a toElement method, it will try to convert it to an  element (we’ll explore that more a couple sections down). A key difference you’ll find between MooTools’ dollar function and jQuery’s is this: MooTools’ <code>$()</code>  will only ever return 1 Element, and it will return <code>null</code> if no matching element is found.  This means unless you’re absolutely 110% certain the element will exist,  <strong>you’ll need to check the returned value before starting to call Element methods on it</strong>.</p>
<pre><code class="javascript"><span class="keyword">var</span> loginEl = $(<span class="string">'Login'</span>);
    <span class="keyword">if</span> (loginEl) {
            loginEl.fade(<span class="string">'in'</span>);
    }</code></pre><p>The MooTools Team prefers two separate methods for the selecting elements; to  remove any doubt about what a certain function call may be returning, we have one method for individual elements and another for multiple elements. In this case, <em>it’s preferable to be explicit, instead of relying to ambiguous auto-magic</em>. When we see <code>$</code>, we expect an element if it exists. When we see  <code>$$</code>, we expect an array of elements (which, as you know, an array can always be  empty). The double dollar function has some neat tricks that are explained in  its own section below.</p>
<p>All this talk about Elements, but only about how to select them. MooTools  also provides an excellent Element construction API.</p>
<div class="heading clearfix"><h3>new Element()</h3></div><p>With vanilla JS (mmm, vanilla…), you’d use <code>document.createElement</code> whenever you wanted to create and add a new element to the DOM. MooTools tries to make the JavaScript API more pleasant to use; part of that is a more consistent and easy to use syntax and part of it is using more Object-Oriented programming practices. It feels a lot more OO when creating objects using  the <code>new</code> keyword, whereas the standard way is more procedural. </p>
<p>It turns out that every element you could create inherits from the <code>Element</code> prototype. Specifically, the elements you create through <code>document.createElement</code> would be <code>HTMLDivElement</code>, or <code>HTMLParagraphElement</code>, or whichever element you create. Like I said, they all inherit from the base Element prototype, and then HTMLElement, and so on. MooTools extends the base Element class, so that all elements receive some MooTools love.</p>
<p>MooTools augments the Element <a href="http://keetology.com/blog/2009/07/20/up-the-herd-ii-native-flora-and-fauna" alt="native">native</a>, providing a super-duper sweet constructor. You can provide the tag name, and then an  object of properties to set on the new element. The returned object is of the  same type as the $ method mentioned above. The properties you can set are fairly  extensive, so <a href="/docs/docs/null/Element/Element#Element:constructor" alt="check out the documentation">check out the documentation</a>  to learn more about them, but here’s a demonstration.</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/9rxKg/embedded/"></iframe>

<div class="heading clearfix"><h3>toElement</h3></div><p>The dollar method provides another function: converting the instance of class into an element(-al?) form. This is similar to a <code>toString</code> function, which  converts objects into strings when needed. You can define a method  in a class called <code>toElement</code>, and return an element to “represent” the instance. Let’s take a look at a snippet from a Person Class:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/uUxDm/embedded/"></iframe>

<p>Several extensions in MooTools More take advantage of this, like  Form.Request, Form.Validator, HtmlTable, and others. And many plugins in the Forge use this approach as well. This means that after creating an instance of  one of these classes, you can just hold on to the instance in your code.  Whenever you want to affect the element that the instance is controlling, you  just use <code>$(instance)</code> to retrieve it.</p>
<p>Aaron even cooked up a ToElement mixin, and <a href="http://www.clientcide.com/best-practices/5-advanced-techniques-for-mootools-development/" alt="wrote a bit more about this over here">wrote a bit more about this over here</a>.</p>
<div class="heading clearfix"><h3>Elements</h3></div><p>I pointed out earlier that <code>$$</code> returns an array-like object containing Elements. It actually returns an object called exactly that: <code>Elements</code>. Behind  the scenes, MooTools gets an array of all the elements that meet the selector (so it&#39;s still an array), and then extends the array with all the Elements  methods. Why would we want that?</p>
<p>All the methods that MooTools adds to the Element native are added to the Elements class as well. You can do some pretty nifty chaining because of this. First of all, you don’t have to check that it didn’t return <code>null</code>. This is because any method you call on Elements, will loop through the array and try to call the method on each individual element. Even with an empty array, the loop won’t cause an error. And any method you call that would normally return a value,  will return an array of the values from each element. An example should make this clearer:</p>
<pre><code class="javascript"><span class="comment">//assigns a click event to all A tags</span>
    $$(<span class="string">'a'</span>).addEvent(<span class="string">'click'</span>,  <span class="keyword">function</span>(e) {
            e.preventDefault();
            alert(<span class="keyword">this</span>.href);
    });  

    <span class="comment">//gets all divs with an id set, and then returns</span>
    <span class="comment">//an array of the IDs  sorted alphabetically</span>
    <span class="keyword">var</span> ids = $$(<span class="string">'div[id]'</span>).get(<span class="string">'id'</span>).sort();  

    <span class="comment">//gets all divs with a UL immediately inside</span>
    <span class="comment">//and assigns a class name to  the divs</span>
    $$(<span class="string">'div &amp;gt; ul'</span>).getParent().addClass(<span class="string">'has-list'</span>);</code></pre><p>While you could put together long chains acting on all the elements you’ve selected, I’d advise against this. It certainly looks cool, and will work fine one or 2 methods out on the chain. <strong>But every method call will cause another loop  through all the elements</strong>. If you’re doing a lot of things to every element, you might as well do it all in a single pass. I’ll show you what I mean.</p>
<pre><code class="javascript"><span class="comment">//this would loop through each time at addEvent, addClass, and fade</span>
    $$(<span class="string">'li  a'</span>).addEvent(<span class="string">'click'</span>, <span class="keyword">function</span>(e) {}).addClass(<span class="string">'alertable'</span>).fade(<span class="string">'in'</span>);  

    <span class="comment">//whereas this will only cause 1 loop</span>
    $$(<span class="string">'li a'</span>).each(<span class="keyword">function</span>(link)  {
            link.addEvent(<span class="string">'click'</span>, <span class="keyword">function</span>(e) {
                     alert(<span class="keyword">this</span>.title);
            });
            link.addClass(<span class="string">'alertable'</span>);
            link.fade(<span class="string">'in'</span>);
    });</code></pre><p>Still, when doing something simple, you can skip the each call, since Elements will handle that for you.</p>
<div class="heading clearfix"><h3>Concluding</h3></div><p>MooTools provides a lot of expressive power when working with the DOM. It&#39;s consistent API makes it a snap to add events, change styles, create elements and more. The object oriented nature of its implementation makes it so that you can extend Elements for your own purposes. Look forward to my next post where I&#39;ll talk about extending Elements in various ways and cover best practices for when you decide to bend Elements to your own will.</p>
<p><em>Sean McArthur is a software developer at Blazonco.com who is madly in love with MooTools. Most of his contributions involve sharing tips and information about MooTools (and programming in general) at his <a href="http://mcarthurgfx.com" alt="blog">blog</a> and on <a href="http://twitter.com/seanmonstar" alt="Twitter">Twitter</a>.</em></p>

]]></description><pubDate>Fri, 19 Mar 2010 22:41:41 GMT</pubDate><guid isPermaLink="true">/blog/2010/03/19/a-better-way-to-use-elements</guid></item><item><title>MooTools Roundup February 2010</title><link>/blog/2010/03/11/mootools-roundup-february-2010</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
roundup
]]></category><description><![CDATA[
<p>The foundation of every great open source project is its community. The MooTools Team creates the base framework code but it’s all of you that take the framework and build outstanding plugins. These are just some of the new developments floating around the MooTools community.</p>

<p><h3>12 Steps to MooTools Mastery</h3></p>
<p>Jacob Thornton&#39;s NetTuts article, 12 Steps to MooTools Master, is a high-level introduction to the MooTools JavaScript framework.  The informative article touches on such MooTools topics as Mutators, Prototypal Inheritance, custom events, binding, and more.  This tutorial probably isn&#39;t for the complete beginner, but is a good place to start for people still relatively new to MooTools and those considering it for the first time.</p>
<p><a href="http://net.tutsplus.com/tutorials/javascript-ajax/12-steps-to-mootools-mastery/">http://net.tutsplus.com/tutorials/javascript-ajax/12-steps-to-mootools-mastery/</a></p>

<p><a href="/forge/p/meio_autocomplete"><img src="/forge/uploads/screenshots/220/1003/thumbs/536d222807f5d114bfa0300bf3ff87e5.png" alt="Meio.Autocomplete" style="float:right;margin:0 0 15px 15px" /></a></p>
<p><h3>Meio.Autocomplete</h3></p>
<p>Meio.Autocomplete is the latest plugin from MooTools Contributor Fábio M. Costa.  Fábio&#39;s class is packed full of options and events, making it one of the most flexible MooTools Autocomplete plugin available.  Great work Fábio!</p>
<p><a href="/forge/p/meio_autocomplete">/forge/p/meio_autocomplete</a></p>

<p><a href="/forge/p/dynamictextarea"><img src="/forge/uploads/screenshots/225/1058/thumbs/04f4bcc6966d727ea13800811653bdec.png" alt="DynamicTextarea" style="float:right;margin:0 0 15px 15px" /></a></p>
<p><h3>DynamicTextarea</h3></p>
<p>
DynamicTextarea is a MooTools class that resizes TEXTAREA elements as the user types.  DynamicTextarea boasts numerous options and events for maximum control over chosen TEXTAREAs.
</p>
<p><a href="/forge/p/dynamictextarea">/forge/p/dynamictextarea</a></p>

<p><h3>Array.Math</h3></p>
<p>
Array.Math is an outstanding set of Math methods you can add to JavaScript&#39;s native Array object.  Need to find the sum of numbers in an array?  Need to normalize elements in an array?  Need to get the vector length of an array of numbers?  Be sure to download Array.Math!  Kudos to Arian Stolwijk for his excellent work!
</p>
<p><a href="/forge/p/array_math">/forge/p/array_math</a></p>


<p><h3>LazyLoader</h3></p>
<p>
LazyLoader is a unique MooTools plugin created by David Chan which allows you to defer loading of MooTools classes until they are needed.  This is especially helpful when building large web applications.  LazyLoader is very easy to use and implement.
</p>
<p><a href="/forge/p/lazyloader">/forge/p/lazyloader</a></p>

<p><a href="/forge/p/locate"><img src="/plugins/uploads/screenshots/214/943/thumbs/22c24a2b0bb82f6cea8a5ae35a40b38a.png" alt="Locate" style="float:right;margin:0 0 15px 15px" /></a></p>
<p><h3>Locate</h3></p>
<p>
Locate is a Geolocation plugin authored by Christopher Beloch.  Christopher&#39;s plugin taps into the power of HTML5 and offers a few useful options and events to control the Locate instance.
</p>
<p><a href="/forge/p/locate">/forge/p/locate</a></p>

<p><h3>Keep Up the Good Work!</h3></p>
<p>These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your plugins in future posts!</p>
]]></description><pubDate>Fri, 12 Mar 2010 02:11:30 GMT</pubDate><guid isPermaLink="true">/blog/2010/03/11/mootools-roundup-february-2010</guid></item><item><title>More Than Meets the Eye: Form.Request</title><link>/blog/2010/03/04/more-than-meets-the-eye</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p><a href="/more/docs/null/more" alt="MooTools More">MooTools More</a> features a diverse, powerful collection of Classes (60 plugins!!) and some are my favorite tools that I use over and over again. I thought I&#39;d take some time to dig into some of the plugins in MooTools More that I think are interesting and really useful that maybe you haven&#39;t had time to really sink your teeth into (or, perhaps, you haven&#39;t found a reason to). So I&#39;m going to take some time to talk about some of the plugins in More each month, sharing not only how they work, but how they work together and maybe even why you&#39;d use them. Today I&#39;m going to talk about the <code><a href="/docs/docs/null/Forms/Form.Request" alt="Form.Request">Form.Request</a></code> plugin.</p>
<div class="heading clearfix"><h3>Request and Request.HTML</h3></div><p>MooTools Core ships with three AJAX modules, two of which include element methods (<code>Request.JSON</code>, the third module, doesn&#39;t alter the Element prototype). <em><a href="/docs/docs/null/Request/Request" alt="Request.js">Request.js</a></em> provides the Element prototype with a <code><a href="/docs/docs/null/Request/Request#Element:send" alt="send">send</a></code> method that lets you post a form (as in, <code>$(&#39;myFormElement&#39;).send([request options go here])</code>), and <em><a href="/docs/docs/null/Request/Request.HTML" alt="Request.HTML.js">Request.HTML.js</a></em> provides the Element prototype with a <code><a href="/docs/docs/null/Request/Request.HTML#Element:load" alt="load">load</a></code> method that lets you replace the contents of any DOM element with text returned from a server request (as in <code>$(&#39;myElement&#39;).load([request options go here])</code>). I use these fairly often, though I probably use the <code>Request</code> and <code>Request.HTML</code> constructors just as much if not more. But in my own work I found myself needing the combination of these two things; I want to submit the form <em>and</em> load the response into a DOM element. Turns out, I do this all the time.</p>
<p>Part of writing idiomatic MooTools code is encapsulating functionality into Classes. As I&#39;ve <a href="http://www.clientcide.com/best-practices/jquery-and-the-ajax-experience-programming-to-the-pattern-and-what-really-makes-one-framework-different-from-another/" alt="posted">posted</a> <a href="http://clientcide.com/best-practices/thoughts-on-coding-and-new-classes-as-a-result/" alt="before">before</a>, I do this with almost all the code that I write. The only code that I author that isn&#39;t a class (or a static object) is a DomReady statement that instantiates classes. So when I have a pattern as clear as this - submitting a form and updating the DOM with the response - it&#39;s time to write a class.</p>
<div class="heading clearfix"><h3>Form.Request</h3></div><p><code>Form.Request</code>, unlike <code>Request.HTML</code>, is not an extension of the <code>Request</code> class (that&#39;s why it&#39;s not <code>Request.Form</code>). Because it is not a <code>Request.HTML</code> instance, it has a reference to an instance of <code>Request</code> in it. <code>Form.Request</code>&#39;s options include a <code>requestOptions</code> object that gets passed along to this instance so you can configure it however you like. By default, <code>Form.Request</code> derives as much as it can from the form element itself. It gets its URL from the action property and the method from the method property. The user submits the form and it cancels the submit event. <code>Form.Request</code> inspects that event to see if the user clicked a button and, if so, sends the name/value of that button along with the data like a regular form submission. Finally, it provides an <code>extraData</code> option so you an send along key/values with the form in addition to those in the inputs that the user fills out.</p>
<p>When the form returns a response, it handles it pretty much how <code>Request.HTML</code> handles any other response. It injects the HTML and evaluates any scripts in the response (this is an option, too).</p>
<p>And what about what we set out to do? To provide a method for Element that is the combo of <code>load</code> and <code>send</code>? The plugin provides the Element prototype with a <code>formUpdate</code> method that works just like those two methods combined (as in <code>$(&#39;myForm&#39;).formUpdate({ update: $(&#39;myTarget&#39;) })</code>, which sends the form and updates <code>$(&#39;myTarget&#39;)</code>).</p>
<div class="heading clearfix"><h3>Demo Time!</h3></div><p>Here&#39;s a simple demo to play with. Note how our html is plain old vanilla web 1.0 form stuff. Nothing fancy. And our JavaScript is dead simple (to get the default behavior).</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/F3t8G/embedded/"></iframe>

<div class="heading clearfix"><h3>Getting Fancy</h3></div><p>Hmmm. Well, our behavior here leaves a little to be desired. The main thing that seems to be missing is any indication that something is changing - that the form has been submitted and we&#39;re waiting for a response from the server (MooShell provides a 2 second delay on the response to simulate normal web latency). We could add an event to our instance to tell the user that something is going on, like so:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/QVpGD/embedded/"></iframe>

<div class="heading clearfix"><h3>Getting Fancier</h3></div><p>Here&#39;s where the fact that this plugin is part of MooTools More comes into play. MooTools More includes a plugin called <code><a href="/docs/docs/null/Interface/Spinner" alt="Spinner">Spinner</a></code>. I&#39;ll talk about it in depth some other time, but in a nutshell, it puts an Ajax indicator over an element that&#39;s being updated. It integrates with <code>Request.HTML</code> and <code>Form.Request</code> configures it for us. This happens automatically (unless you disable it in the options) and all we have to do is skin it. In this example, I&#39;ve moved our message (that we&#39;re sending the submission) into the <code>Spinner</code> options.</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/mTnnV/embedded/"></iframe>

<p>This magic happens without much effort for us so long as we have <em>Spinner.js</em> in our page. This is the default behavior. We don&#39;t even have to specify the message text if we&#39;re content with just the spinner image.</p>
<div class="heading clearfix"><h3>Even More Integration</h3></div><p>One other thing <code>Form.Request</code> integrates with (also in the MooTools More library, naturally) is <code><a href="/docs/docs/null/Forms/Form.Validator" alt="Form.Validator">Form.Validator</a></code>. That&#39;s another plugin I&#39;m not going to spend a ton of time describing in today&#39;s post - we&#39;ll save it for a later post as it has lots of nifty things in it. But, basically, <code>Form.Validator</code> (and its subclasses) provide instructions for users who are filling out a form on the fly. <code>Form.Request</code> integrates with it so that you don&#39;t have to do anything to make them play nice together. Both intercept the submit event and both prevent its default behavior (i.e. sending the form), except that the <code>Form.Validator</code> class only stops it if the form is invalid. If <code>Form.Request</code> didn&#39;t respect this privilege, it would send our form even if the <code>Form.Validator</code> stopped the default submission event. To get them to cooperate, all you have to do is create an instance of <code>Form.Validator</code> on the form. Example:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/9YRZV/embedded/"></iframe>

<p>In this example, we set a minLength value for our form (50 characters). The default html in the textarea is only about 45 characters, so if you just hit submit you&#39;ll see a red error message show up. Add some more text to our example, hit submit, and the error winks out and our form sends just as before.</p>
<div class="heading clearfix"><h3>Appending Results</h3></div><p>One last trick up our sleeves here; you can append results instead of overwriting the contents of our target. Think of a to-do list kind of interface, where adding a value adds a new item to a list. To get this behavior, we just substitute <code><a href="/docs/docs/null/Forms/Form.Request.Append" alt="Form.Request.Append">Form.Request.Append</a></code> into our example. There are some additional options; by default it uses another MooTools More plugin, <code><a href="/docs/docs/null/Fx/Fx.Reveal" alt="Fx.Reveal">Fx.Reveal</a></code>, to smoothly transition elements into view. You can also specify if the item is appended to the top or the bottom of the container. Example:</p>
<iframe style="width: 100%; height: 300px" src="https://jsfiddle.net/w00fz/9YRZV/1/embedded/"></iframe>

<div class="heading clearfix"><h3>THEND</h3></div><p>So that pretty much covers <code>Form.Request</code>. I hope you find it as useful as I do. If you find it useful and fun, post a link in the comments showing off what you&#39;ve done with it. In my next post I&#39;ll pick another plugin (or plugins) to dig into and show off their capabilities. If there&#39;s one you&#39;d like to learn more about, post a suggestion for my next post in the comments.</p>
<p><em>Aaron Newton is a contributor to MooTools and the principal developer of MooTools More. He is the author of the book <strong>MooTools Essentials</strong> as well as the <a href="http://mootorial.com" alt="Mootorial">Mootorial</a> online MooTools tutorial. He posts (rarely these days) at his blog <a href="http://clientcide.com" alt="Clientcide.com">Clientcide.com</a> and (much more often) on Twitter as <a href="http://twitter.com/anutron" alt="anutron">anutron</a>.</em></p>

]]></description><pubDate>Thu, 04 Mar 2010 22:06:11 GMT</pubDate><guid isPermaLink="true">/blog/2010/03/04/more-than-meets-the-eye</guid></item><item><title>MooTools at FOSDEM: Video</title><link>/blog/2010/02/15/mootools-at-fosdem-video</link><dc:creator><![CDATA[
Christoph Pojer
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Hello everyone,</p>
<p>I&#39;m really excited and pleased to announce that my presentation &quot;MooTools as a General Purpose Application Framework&quot; which I delivered at the <a href="http://fosdem.org">FOSDEM</a> is now available on YouTube.</p>
<object width="730" height="470"><param name="movie" value="http://www.youtube.com/v/6nOVQDMOvvE&hl=en_US&fs=1&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6nOVQDMOvvE&hl=en_US&fs=1&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="730" height="470"></embed></object>


<p><img src="/uploads/BrusselsWaffles.jpg" alt="" style="float: right; width: 300px; margin:0 0 15px 15px" />
If you are not able to watch the HD-Version you can download the slides <a href="http://cpojer.net/Talks/MooToolsFOSDEM.pdf">here</a>.</p>
<p>Thanks again to the FOSDEM team for inviting me and for giving us such a big platform to present the MooTools project. If I could name one thing that I miss already about Brussels I would certainly say the waffles...</p>
<p>If you enjoyed this presentation and you want me or another developer from the MooTools Core Team to present at your conference feel free to <a href="/developers">contact us</a>.</p>
<div style="clear: both;"></div>
]]></description><pubDate>Mon, 15 Feb 2010 15:59:28 GMT</pubDate><guid isPermaLink="true">/blog/2010/02/15/mootools-at-fosdem-video</guid></item><item><title>MooTools Roundup January 2010</title><link>/blog/2010/02/15/mootools-roundup-january-2010</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
roundup
]]></category><description><![CDATA[
<p>The foundation of every great open source project is its community. The MooTools Team creates the base framework code but it’s all of you that take the framework and build outstanding plugins. Here are some great plugins and tutorials that have been released recently.</p>

<h3>MooTools Driver for Rails 3 Helpers</h3>
<p>Rails 3 has been recently been released with the new capability to create your own javascript helpers;  no longer will you need to use PrototypeJS.  Kevin Valdek has created a MooTools helper so that you can use your favorite javascript framework with your chosen Ruby application.  Kevin mentioned that his release isn&#39;t complete at this point so feel free to contribute!  Great work Kevin!</p>
<p><a href="http://kevinvaldek.com/mootools-driver-for-rails-3-helpers">http://kevinvaldek.com/mootools-driver-for-rails-3-helpers</a></p>

<h3>Moodit</h3>
<p>MooTools now has its own Reddit topic.  Be sure to share your favorite MooTools posts with all of your friends via Reddit!</p>
<p><a href="http://www.reddit.com/r/mootools/">http://www.reddit.com/r/mootools/</a></p>

<h3>Moodoco</h3>
<p>Moodoco is a purely web-based client-side MooTools documentation generator with HTML5 offline capabilities created by <a href="http://www.cheeaun.com">Lim Chee Aun</a>. It uses the GitHub API to fetch all the Markdown documentation files from the repository and stores them offline in localStorage.</p>
<p><a href="http://github.com/cheeaun/moodoco">http://github.com/cheeaun/moodoco</a></p>

<h3>MultiSelect</h3>
<a href="/forge/p/mutiselect"><img src="/forge/uploads/screenshots/185/811/thumbs/48e9e228eacde2e88c4e18c36f3f3d1e.png" alt="MultiSelect" style="float:right;margin:0 0 15px 15px" /></a>
<p>MultiSelect is a MooTools plugin from Blaž Maležič that turns your checkbox set into one single multi-select dropdown menu.  This highly inventive plugin is a great way to make your select boxes much more appealing.</p>
<p><a href="/forge/p/mutiselect">/forge/p/mutiselect</a></p>

<h3>Mif.Tree</h3>
<a href="/forge/p/mif_tree"><img src="/forge/uploads/screenshots/179/809/thumbs/94a5b7d94b1dd39f740213b5a413792b.png" alt="Mif.Tree" style="float:right;margin:0 0 15px 15px" /></a>
<p>Mif.Tree is a flexible tree-generation plugin that loads trees of information from javascript objects.  You could, for example, output a JSON representation of a directory and view your server via HTML/javascript trees.</p>
<p><a href="/forge/p/mif_tree">/forge/p/mif_tree</a></p>

<h3>Featured Blog:  Ryan Florence</h3>
<p><a href="http://ryanflorence.com/">Ryan Florence&#39;s blog</a> has been doing an outstanding job of explaining complex MooTools concepts.  Be sure to check out his blog!</p>
<p><a href="http://ryanflorence.com/">http://ryanflorence.com/</a></p>

<h3>Keep Up the Good Work!</h3>

<p>These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your plugins in future posts!</p>
]]></description><pubDate>Mon, 15 Feb 2010 15:56:14 GMT</pubDate><guid isPermaLink="true">/blog/2010/02/15/mootools-roundup-january-2010</guid></item><item><title>MooTools More 1.2.4.3, 1.2.4.4</title><link>/blog/2010/02/09/mootools-more-1-2-4-3</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
releases
]]></category><description><![CDATA[
<p><strong>UPDATE</strong>: 1.2.4.4 is also released; there was a new bug in Tips introduced in 1.2.4.3 that was immediately patched.</p>
<p>This is mostly a bug fix release.</p>
<ul>
<li>Nearly 50 bug fixes (<a href="https://mootools.lighthouseapp.com/projects/24057/milestones/54424-1243" alt="see the milestone for 1.2.4.3 in Lighthouse">see the milestone for 1.2.4.3 in Lighthouse</a>).</li>
<li>Keyboard:<ul>
<li>Added some support for just pressing &#39;shift&#39;, &#39;control&#39;, or &#39;alt&#39;</li>
<li>Added a bunch of keycodes for Mac compatibility</li>
</ul>
</li>
<li>Keyboard.Extras:<ul>
<li>Support for &quot;shortcuts&quot; which are keyboard entries that have names and descriptions.</li>
<li>Also provides methods for listing all the active shortcuts as well as allowing a shortcut to be rebound (for instance, if you were to allow the user to choose a key for a shortcut).</li>
<li>Added a change event to Keyboard.manager whenever any keyboard is activated.</li>
</ul>
</li>
<li>Tips:<ul>
<li>NEW Tips option &quot;windowPadding&quot; allows you to reduce or expand the virtual size of the window for tip positioning. Defaults to <code>{x:0, y:0}</code>. You can use that is a workaround for the scrollbars not being considered when calculating tip positions.</li>
</ul>
</li>
<li>HtmlTable:<ul>
<li>fixed numerous bugs filed in Lighthouse</li>
<li>HtmlTable can no longer apply it&#39;s click behavior more than once.</li>
<li>HtmlTable now pushes headers defined in the options.</li>
<li>Reworked HtmlTable&#39;s DOM a bit to allow for positioning of the sort icon</li>
<li>Added new set method for headers and footers.</li>
<li>Fixed error in HtmlTable.Parsers when sorting by date. format(&#39;db&#39;) was being applied to the text and not the date object.</li>
</ul>
</li>
<li>Array: <ul>
<li>Added Array.shuffle</li>
</ul>
</li>
<li>Request.JSONP:<ul>
<li>Made JSONP pass all arguments, not just the first, to its complete/success methods; <a href="http://groups.google.com/group/mootools-users/browse_thread/thread/9cfa52bf0cf05bac" alt="see this discussion on the google group">see this discussion on the google group</a>.</li>
</ul>
</li>
<li>Fx.Slide:<ul>
<li>Added an option to specify the wrapper element for Fx.Slide. Was already present in the docs but could not be passed as an option.</li>
</ul>
</li>
<li>Mask:<ul>
<li>Added options for the IframeShim for Mask</li>
</ul>
</li>
</ul>
<p><a href="/more/docs/null/more" alt="Download it with the MooTools More builder">Download it with the MooTools More builder</a>.</p>
<p>As usual, if you find any issues, <a href="https://mootools.lighthouseapp.com/projects/24057/" alt="file a ticket at lighthouse">file a ticket at lighthouse</a>. There are already <a href="https://mootools.lighthouseapp.com/projects/24057-mootoolsmore/milestones/60506-1244" alt="tickets open for 1.2.4.4">tickets open for 1.2.4.4</a> that we are not including fixes for in this release. Look for a release for these things in the next few weeks.</p>

]]></description><pubDate>Wed, 10 Feb 2010 02:10:29 GMT</pubDate><guid isPermaLink="true">/blog/2010/02/09/mootools-more-1-2-4-3</guid></item><item><title>MooTools Roundup December 2009</title><link>/blog/2010/01/06/mootools-roundup-december-2009</link><dc:creator><![CDATA[
Christoph Pojer
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
roundup
]]></category><description><![CDATA[
<p>With the release of the Forge in December the way people contribute to MooTools has changed. The quality, amount, and the variety of plugins has amazed all of us. There are already more than 100 plugins available. 
In addition to that, Jacob Gube (<a href="http://sixrevisions.com/">SixRevisions</a>) and MooTools contributor Garrick Cheung (<a href="http://twitter.com/garrickcheung">@garrickcheung</a>) have co-authored a new <a href="http://www.amazon.com/MooTools-Beginners-Guide-Jacob-Gube/dp/1847194583/">MooTools book</a> aimed at JavaScript beginners.</p>

<p>Aaron has written an <a href="http://www.clientcide.com/deep-thoughts/mootools-in-2009-in-retrospect-thoughts-on-2010-and-beyond/">extensive review about MooTools in 2009</a>. I expect 2010 to be an even better year for our Framework. As a first step we would like to invite you to meet part of the MooTools Team at the <a href="http://fosdem.org">FOSDEM</a> in February in Brussels where I will do an interesting talk about <a href="http://fosdem.org/2010/schedule/events/mootools">MooTools as a General Purpose Application Framework</a>.</p>

<p>
The real strength of MooTools, however, is you -- the community.  Here are a few of the many great MooTools plugins that were released during the month of December.
</p>

<p><h3 style="clear: both;">PassShark</h3></p>
<p>
<a href="/forge/p/passshark"><img src="/uploads/RoundupDecemberPassShark.png" alt="PassShark" style="float:right;margin:0 0 15px 15px" /></a>
Created by MooTools contributors Luis Merino <code>(<a href="http://twitter.com/rendez">@Rendez</a>)</code> and Nathan Querido <code>(<a href="http://twitter.com/nfq">@nfq</a>)</code>,  PassShark duplicates the iPhone&#39;s method of password masking.  A great method for making your passworld fields a bit easier to use.
<ul>
<li><a href="/forge/p/passshark">PassShark on the Forge</a></li>
<li><a href="http://www.queridodesign.net/blog/passshark">Blog-Entry</a></li>
</ul></p>

<p><h3>MooPix</h3></p>
<p>
<a href="http://www.moopix.org/"><img src="/uploads/RoundupDecemberMooPix.png" alt="MooPix" style="float:right;margin:0 0 15px 15px" /></a>
MooPix is not only a MooTools slideshow function but a method for accessing your public Flickr photos.  Though no server side scripting is required, MooPix remains very small.
<ul><li>
<a href="http://www.moopix.org/">MooPix Website</a>
</li></ul>
</p>

<p><h3>Notimoo</h3></p>
<p>
<a href="http://www.paquitosoft.com/notimoo/"><img src="/uploads/RoundupDecemberNotiMoo.png" alt="NotiMoo" style="float:right;margin:0 0 15px 15px" /></a>
Notimoo is a simple Mac Growl clone made with MooTools.  At only 4KB Notimoo is a lightweight but still provides the right amount of customization.
<ul>
<li><a href="http://www.paquitosoft.com/notimoo/">http://www.paquitosoft.com/notimoo/</a>
</li></ul></p>

<p><h3>MGFX.Tabs 1.1</h3></p>
<p>
<a href="http://mcarthurgfx.com/blog/article/mgfx-tabs-1-1-on-github"><img src="/uploads/RoundupDecemberTabs.png" alt="MGFX.Tabs 1.1" style="float:right;margin:0 0 15px 15px" /></a>
Sean McArthur has recently updated his popular Tabs class by making it more efficient and more flexible.
<ul>
<li><a href="/forge/p/mgfx_tabs">MGFX.Tabs 1.1 on the Forge</a></li>
<li><a href="http://mcarthurgfx.com/blog/article/mgfx-tabs-1-1-on-github">Blog Post and Demo</a></li>
</ul>
</p>

<p><h3 style="clear: both;">Fx.TransMorph</h3></p>
<p>
<a href="/forge/p/fx_transmorph"><img src="/uploads/RoundupDecemberFxTransMorph.png" alt="Fx.TransMorph" style="float:right;margin:0 0 15px 15px" /></a>
This Plugin by Lim Chee Aun (<a href="http://twitter.com/cheeaun">@cheeaun</a>) allows a different transition for every property that is being animated.
<ul><li>
<a href="/forge/p/fx_transmorph">Fx.TransMorph on the Forge</a>
</li></ul>
</p>

<p><h3>Other Stuff Worth Mentioning</h3></p>
<ul>
<li><a href="http://schlaeps.com/mootools/gradient-creator/">Webkit Gradient Creator</a> (double click to create new pins!)</li>
<li><a href="http://toki-woki.net/p/scroll-clock/">Scroll Clock</a></li>
<li><a href="http://www.chipwreck.de/blog/2009/12/14/mootools-formvalidator-how-to-use-part-1/">MooTools FormValidator Tutorial</a></li>
<li><a href="http://sourceforge.net/projects/mootoolsdocgen/">Offline MooTools Docs Generator</a></li>
<li><a href="http://mtap.simulacre.org/">HTML5 Audio Player with MooTools</a></li>
<li><a href="http://nouincolor.com/wtframework/2.0/">WTFramework? 2.0</a> (must-have bookmarklet)</li>
</ul>

<p><h3>Keep Up the Good Work!</h3></p>
<p>These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your plugins in future posts!</p>
]]></description><pubDate>Wed, 06 Jan 2010 14:21:23 GMT</pubDate><guid isPermaLink="true">/blog/2010/01/06/mootools-roundup-december-2009</guid></item><item><title>MooTools 1.1 Upgrade Helper (beta)</title><link>/blog/2009/12/31/mootools-1-1-upgrade-layer-beta</link><dc:creator><![CDATA[
Moo Tools
]]></dc:creator><category><![CDATA[
releases
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>Users wishing to upgrade any large site from MooTools 1.1 to 1.2 can sometimes find it difficult. The API for 1.2 changed quite a bit, so without help upgrading your code can be fraught with danger.</p>
<p>Our solution is an upgrade helper that will allow you to replace your old MooTools 1.1 code with 1.2 code by logging deprecated methods to the console and telling you what needs to be changed.</p>
<p>The upgrade helper also attempts to automatically convert 1.1 calls to 1.2 calls. However, this helper is not really meant to be a compatibility script so much as a script designed to help you migrate your code. In almost all cases methods that have been deprecated or have had their API altered will provide feedback to the console when they are called. Ideally, developers will put this script into their environment with MooTools 1.2, use their application and change all the calls that throw warnings, then remove the upgrade helper from their environment.</p>
<div class="heading clearfix"><h3>Using the Upgrade Helper</h3></div><p>You can download the upgrade helper on the <a href="/download#upgrade-helper/docs/null/download#upgrade-helper" alt="MooTools Download Page">MooTools Download Page</a> along with current build of MooTools built for it. This companion library has all the functionality found in MooTools 1.1 (Drag, Accordion, etc. - some of these plugins moved out of MooTools Core and into MooTools More in 1.2).</p>
<p>Simply replace MooTools 1.1 with MooTools 1.2, include the upgrade helper, then include your site&#39;s code. Browse your site with a browser that provides a console API (we recommend <a href="http://firefox.com" alt="Firefox">Firefox</a> with <a href="http://getfirebug.com" alt="Firebug">Firebug</a>) and take note of the warnings thrown (note, you can adjust the logging; see the <a href="http://github.com/mootools/mootools-upgrade-helper#readme" alt="readme">readme</a>). Address these in your code base until you cannot find any more, then remove the upgrade helper. You have now an upgraded website, and you can use the plugins in the <a href="/forge/docs/null/forge" alt="Forge">Forge</a>!</p>
<p>If you still have warnings after you have finished converting your code, have a look at the <a href="http://docs111.mootools.net/" alt="documentation for 1.1">documentation for 1.1</a> and <a href="/docs/docs/null/docs/core" alt="1.2">1.2</a> and also the source code in the <a href="http://github.com/mootools/mootools-upgrade-helper" alt="upgrade helper">upgrade helper</a>. Most changes are simple, but may require a change of arguments. There are a few breaking changes but in the vast majority of cases these should not affect you. A complete list of the changes between 1.1 and 1.2 can be found in the readme of the github <a href="http://github.com/mootools/mootools-upgrade-helper#readme" alt="upgrade-helper repository">upgrade-helper repository</a>.</p>
<div class="heading clearfix"><h3>Feedback, Help, and Resources</h3></div><p>The upgrade helper is being released as a beta for now. We&#39;ve written and run tests against the browsers we support but the real world usage of MooTools will be the real test. As such, we hope that you, the MooTools community, will help us polish this script, by letting us know what features on your sites don&#39;t work. Bugs can be filed using the <a href="http://github.com/mootools/mootools-upgrade-helper/issues" alt="github issues for the repository">github issues for the repository</a>.</p>
<p>Arguably, this is something we should have provided long ago. Going forward, we&#39;ve pledged to make all releases 100% backwards compatible for all documented methods and features.</p>
<p>Should you require any guidance or assistance, you can, as always, find us in the <a href="irc://irc.freenode.net/#mootools" alt="#mootools IRC channel">#mootools IRC channel</a>  or post in the <a href="http://groups.google.com/group/mootools-users/" alt="MooTools Google Group">MooTools Google Group</a>.</p>
<p>Last of all, massive thanks to <a href="http://www.nwhite.net" alt="Nathan White">Nathan White</a> and <a href="http://www.siafoo.net/snippet/137" alt="David Isaacson">David Isaacson</a>, for their early work on this. In the last few weeks the MooTools Dev team has spent a lot of time making and testing this upgrade helper, but these guys kicked this off with their contributions and they are most appreciated.</p>

]]></description><pubDate>Thu, 31 Dec 2009 20:03:50 GMT</pubDate><guid isPermaLink="true">/blog/2009/12/31/mootools-1-1-upgrade-layer-beta</guid></item><item><title>The Official MooTools Plugins Repository Is Here!</title><link>/blog/2009/12/10/the-official-mootools-plugins-repository-is-here</link><dc:creator><![CDATA[
Guillermo Rauch
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>If I was to highlight the single most important thing for MooTools in 2009, I would say without a doubt it&#39;s been its <em>community</em>. This year has seen the involvement of many individuals from all over the world that have contributed their time, expertise, talent and charm. Our San Francisco &amp; <a href="/blog/2009/11/30/london-hackathon-2009/">London</a> hackathons are clear confirmation of this.</p>
<p>Today we&#39;re introducing a tool that has been in the works for the past few months that we believe will change how our community collaborates forever. Meet <a href="/forge">the MooTools Forge</a>.</p>
<h3>The Problem</h3>

<p>As a framework, you probably expect MooTools to be compact and provide you with the tools that solve most of your JavaScript problems easily and elegantly and that&#39;s been our goal all along. But for all the other specific needs that your projects have, no matter what framework, you&#39;ve probably found yourself googling for plugins or snippets before. No one wants to reinvent the wheel.</p>
<p>That Google search will probably return thousands and thousands of results. Many people have even approached the same problem in many different ways (try <a href="http://www.google.com/search?q=mootools+slideshow+plugin">searching for a mootools slideshow plugin</a>!). This distributed model, although relatively effective, represents problems for both users and developers.</p>
<p>For the users, it becomes hard to establish comparisons between the plugins as every developer will represent them differently on their websites. Sometimes it&#39;s hard to find a demo, sometimes you just don&#39;t know how to use the thing. Other times the website will be offline for a couple hours, or maybe you don&#39;t know on what other components the plugin might depends to function.</p>
<p>But can we blame developers? Creating a plugin that you can distribute to people takes work. And for some of us, experience shows that writing documentation, uploading it to our cumbersome blog systems, preparing screenshots (and then upgrading them upon a new release!) can sometimes be even more difficult than writing the plugin itself. Still, there are <a href="http://www.clientcide.com/tools/why-you-should-consider-releasing-code/">some good reasons to consider releasing your code</a>.</p>
<h3>The Solution: for users</h3>

<p>For people trying to find plugins, we wanted a simple interface with <em>visual</em> focus on what&#39;s available. Going through lists of plugins whose names are not always that intuitive or descriptive is both boring and inefficient. You might find yourself opening dozens of tabs just to see what the plugin can potentially offer. We want to try and put all the information you need to make a choice right in one place.</p>
<p style="text-align:center"><a href="http://cld.ly/4eqbg" target="_blank"><img src="http://cld.ly/2aqbx" alt="Browse plugins" style="float: none"/></a></p>

<p>While each plugin can have tags that you can browse, we also came up with a concise list of categories that group the most recurrent functions: Effects, Forms, Interface, Media, Native, Realtime, Request, Utilities, Widgets. </p>
<p>For plugins themselves, we wanted to make three basic tasks easy: seeing a demo, downloading, learning how to use. This is the result:</p>
<p style="text-align:center"><a href="http://cld.ly/10qbp" target="_blank"><img src="http://cld.ly/bbqby" alt="Browse plugins"  style="float: none" /></a></p>

<p>We believe it&#39;s important as well to know who is behind the scenes. To see who is that guy or girl that spent the time to create that amazing piece of functionality that impressed your clients or boosted your website usability. As such, the MooTools Plugins repository comes with simple to tools support to allow you to stay in touch.</p>
<p style="text-align:center"><img src="http://cld.ly/15qbz" alt="Browse plugins"  style="float: none"/></p>

<h3>The solution: for developers</h3>

<p>We&#39;re very proud of how straightforward and efficient we&#39;ve made it for developers to add plugins that:</p>
<ul>
    <li>look great</li>
    <li>specify dependencies</li>
    <li>have descriptions with syntax highlighting</li>
    <li><strong>are easy to maintain</strong></li>
</ul>

<p>We decided to integrate with <a href="http://github.com">GitHub</a>, the social coding website, to enable developers to focus on the code and nothing else. By following a few simple guidelines, you&#39;ll be able to deploy code to the source control repository (git), and then only click one button in our website: either the one to add it, or the one to update it.</p>
<p>In the following video, I&#39;ll show you how I create an account, upload my plugin, and then update it in 30 seconds.</p>
<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' /><param name='flashvars' value='i=32643' /><param name='allowFullScreen' value='true' /><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=32643' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer'></embed></object>

<h3>Conclusion</h3>

<p>We hope you like this new website feature as much as we do, and we look forward to your involvement and contributions.</p>
<p>As an user of the system, if you see something off or have a suggestion, please <a href="http://mooforge.uservoice.com/">drop us a note</a>.</p>
<p>As the developer and maintainer of the project, I want to give my special thanks to <a href="http://cpojer.net/">Chris</a> (for his help with Markdown parsing), <a href="http://nouincolor.com/">Oskar</a> (for his design help) and the <a href="http://www.symfony-project.org/">Symfony</a> project, for providing us with a great framework to build on, as well as the entire MooTools development team who helped find bugs and provided countless suggestions on how to make it better before we launched it.</p>
<p>But the plugin repository itself wouldn&#39;t be anything without <em>you</em> - the MooTools Community. As much as the plugins catalog is <em>for</em> you, it must by definition be <em>by</em> you, too. As excited as we are to have this finally online, it doesn&#39;t compare to our excitement to see what our awesome community comes up with every day.</p>
<p>On another note, the technology that empowers the Forge has been <a href="http://github.com/Guille/PluginsKit">opensourced</a>, for the use of any other open source project.</p>
<p>Happy hacking!</p>

]]></description><pubDate>Thu, 10 Dec 2009 11:33:01 GMT</pubDate><guid isPermaLink="true">/blog/2009/12/10/the-official-mootools-plugins-repository-is-here</guid></item><item><title>London Hackathon 2009</title><link>/blog/2009/11/30/london-hackathon-2009</link><dc:creator><![CDATA[
Darren Waddell
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Anyone that follows any MooTools Core Developer or Contributor <a href="http://twitter.com/mootools/developers">on Twitter</a> may have seen us talking about a &#39;hackathon&#39;. Last weekend a large number of the dev team met up in London to work on various parts of the framework. We thought we&#39;d share with you what we got up to, some pictures, and give you a quick update on what to expect over the coming months.</p>

<p>Significant progress was made on MooTools 2.0. Additionally, we will be releasing a 1.3 version shortly, which will include some of the awesome stuff from MooTools 2.0, so you can get your hands on it a bit quicker.</p>

<p>MooTools ART also was given some love. One sticking point has been that Internet Explorer does not support the &lt;canvas&gt; tag but now thanks to <a href="http://twitter.com/sorccu">Simo Kinnunen</a> <code>(sorccu)</code> we have a VML adapter so we can push on with this development. We can now combine this with the work <a href="http://www.cloudera.com/blog/2009/10/19/cloudera-desktop-and-mootools/">Aaron Newton has done with Cloudera</a> and we should be able to launch a beta in the coming months. We&#39;re really excited by ART and hope you are too.</p>

<p>Another way we want to improve the MooTools experience is by adding demos to the documentation, particularly for some of the UI components in More. The Mootorial has always been a fantastic resource and thanks to <a href="http://twitter.com/zalun">Piotr Zalewa</a> <code>(zalun)</code> and the awesome <a href="http://mooshell.net/">MooShell</a> we are now beginning to prepare embedded examples in our documentation. We&#39;re writing some great snippets and demos and you can expect to see these appearing on our documentation pages over the coming weeks. We really love MooShell and the team have some great improvements to this valuable tool almost ready, including user accounts and versioning. Keep your ears peeled for a blog post with more details soon!</p>

<p>Next year we hope we can organize similar meet-ups that you, the users, can attend. We certainly intend to hold one in London in the spring, and are discussing other venues across the world. We&#39;re really excited by the prospect of being able to meet people face-to-face and hope that some talks and workshops are something that the community want.</p>

<p>We also want to give a big thank-you to <a href="http://www.abacusemedia.com/">Abacus e-Media</a> for hosting the event. Here are some pictures of the dev team at work:</p>

<ul>
<li><a href="http://www.nathanquerido.com/">http://www.nathanquerido.com/</a></li>
<li><a href="http://picasaweb.google.com/christoph.pojer/LondonHackathon">http://picasaweb.google.com/christoph.pojer/LondonHackathon</a></li>
<li><a href="http://www.flickr.com/photos/zalun/sets/72157622853461134/show/">http://www.flickr.com/photos/zalun/sets/72157622853461134/show/</a></li>
</ul>

<p>Look forward to an exciting announcement about the Forge which is currently in private beta -- your treasure trove of MooTools plugins will be here in time for Christmas.</p>

]]></description><pubDate>Mon, 30 Nov 2009 19:28:46 GMT</pubDate><guid isPermaLink="true">/blog/2009/11/30/london-hackathon-2009</guid></item><item><title>MooTools Depender - A Build Tool for MooTools JavaScript Libraries</title><link>/blog/2009/11/09/mootools-depender-a-build-tool-for-mootools-javascript-libraries</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>As <a href="/blog/docs/null/19/mootools-1-2-4" alt="mentioned in the new features in MooTools More in 1.2.4.1">mentioned in the new features in MooTools More in 1.2.4.1</a>, there&#39;s a new plugin called <a href="/docs/docs/null/Core/Depender" alt="Depender">Depender</a> which uses MooTools dependency mappings to allow you to lazy load additional scripts on the fly based on what you need. Rather than list every single file you depend on, you just list the <em>features</em> you want to use and it computes all the specific files needed and each of the files that they need (and so on), excludes the files you already have, and then injects the remaining scripts into the document, providing a callback.</p>
<p>Unfortunately this method is rather slow. The JavaScript plugin must inject each individual script in the dependency list and all these requests can only go as fast as your browser can make them. As a companion to this plugin, we have also authored a stand alone server side application.</p>
<div class="heading clearfix"><h3>New Server-Side Depender</h3></div><p>The new server-side depender companion app ships in two forms: a PHP version and a Django version. They each have their own positives and negatives. The PHP version ships with a web-based interface — a builder you can use to check off the things you want in your download (similar to what you see on MooTools.net). On the other hand, the Django version is faster. The Django app caches everything to memory but the PHP version caches results to disk.</p>
<p>Depending on your needs, you can also use these server-side applications to lazy load chunks of functionality on the fly. This obviously requires your application to talk directly to the server when it needs more code. These apps aren&#39;t designed for enterprise scale.</p>
<p>The server side applications are <a href="http://github.com/anutron/mootools-depender/" alt="available on github">available on github</a>. We still consider the state of this project to be <em>beta</em>, but we want to get the tools into your hands now. If you have any feedback or find any bugs, we want to hear about it. Check out <a href="http://github.com/anutron/mootools-depender#readme" alt="the documentation">the documentation</a> to see how it all works, including the Depender Client(<a href="http://github.com/anutron/mootools-depender/blob/master/client/Docs/Depender.Client.md#readme" alt="docs">docs</a>), which gives you this nifty interface:</p>
<pre><code class="javascript">Depender.require({
            scripts: [<span class="string">'DatePicker'</span>, <span class="string">'Logger'</span>], <span class="comment">//array or single string for one item</span>
            callback: <span class="keyword">function</span>() {
                    <span class="comment">//your code that needs DatePicker and Logger</span>
            }
    });
    <span class="comment">//later, you need to load more dependencies...</span>
    Depender.require({
            scripts: <span class="string">'Fx.Reveal'</span>, <span class="comment">//array or single string for one item</span>
            callback: <span class="keyword">function</span>(){
                    <span class="comment">//if, for some reason, Fx.Reveal is available already,</span>
                    <span class="comment">//then this function will execute immediately, otherwise it will</span>
                    <span class="comment">//wait for the requirements to load</span>
                    $(<span class="string">'someElement'</span>).reveal();
            }
    });</code></pre><p>Libraries that you download with Depender will all have a standard header that looks something like this:</p>
<pre><code class="javascript"><span class="comment">//MooTools, &lt;https://mootools.net&gt;, My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2009 Valerio Proietti, &lt;https://github.com/kamicane&gt;, MIT Style License.</span>
    <span class="comment">//MooTools More, &lt;https://mootools.net/more&gt;. Copyright (c) 2006-2009 Aaron Newton &lt;http://clientcide.com/&gt;, Valerio Proietti &lt;https://github.com/kamicane&gt; &amp; the MooTools team &lt;https://mootools.net/developers&gt;, MIT Style License.</span>
    <span class="comment">//Contents: Core, Browser, Array, Function, Number, String, Hash, Event, Class, Class.Extras, Element, Element.Event, Element.Style, Element.Dimensions, Selectors, DomReady, JSON, Cookie, Swiff, Fx, Fx.CSS, Fx.Tween, Fx.Morph, Fx.Transitions, Request, Request.HTML, Request.JSON, More, Element.Shortcuts, Element.Measure, Fx.Reveal</span>
    <span class="comment">//This lib: http://clientcide.com/js/build.php?requireLibs=mootools-core&amp;require=Fx.Reveal&amp;compression=none</span></code></pre><p>This header includes, among other things, a manifest of the contents of the file and a url that can be used to retrieve it again. This is especially useful if you want to come and download the file again for the latest version.</p>
<p>The builder on MooTools.net does not use Depender yet but we will deploy it there soon. You can see it live on the <a href="http://clientcide.com/js" alt="Clientcide builder">Clientcide builder</a>.</p>

]]></description><pubDate>Mon, 09 Nov 2009 19:10:13 GMT</pubDate><guid isPermaLink="true">/blog/2009/11/09/mootools-depender-a-build-tool-for-mootools-javascript-libraries</guid></item><item><title>MooTools Roundup - October 2009</title><link>/blog/2009/11/06/mootools-roundup-october-2009</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>The foundation of every great open source project is its community. The MooTools Team creates the base framework code but it’s all of you that take the framework and build outstanding plugins. Here are some great plugins and tutorials that have been released recently.</p>

<p><h3>MooShell</h3></p>
<p>
<a href="http://mooshell.net"><img src="/uploads/mooshell.png" alt="MooShell" style="float:right;margin:0 0 15px 15px" /></a>
MooShell, created by Piotr Zalewa <code>(zalun)</code>, is the best code pasting tool since Pastebin.  MooShell allows you to paste your HTML, CSS, and MooTools javascript into the page and test.  MooShell is an excellent utility for troubleshooting an issue or demonstrating your code.
</p>
<p><a href="http://mooshell.net/">http://mooshell.net/</a></p>

<p><h3>Up The Moo Herd IV: There&#39;s A Class For This</h3></p>
<p>
MooTools contributor Mark Obcena <code>keeto</code> continued his excellent series of &quot;Up the Moo Herd&quot; tutorials with &quot;There&#39;s a Class For This.&quot;  This post discusses Class Mutators, Mixins, and MooTools&#39; inheritance model.  Consider this post a must-read for novice and expert MooTools developers.
</p>
<p><a href="http://keetology.com/blog/2009/10/27/up-the-moo-herd-iv-theres-a-class-for-this">http://keetology.com/blog/2009/10/27/up-the-moo-herd-iv-theres-a-class-for-this</a></p>

<p><a href="http://siteroller.net/projects/moorte/"><img src="/uploads/moorte.png" alt="MooRTE" style="float:right;margin:0 0 15px 15px" /></a></p>
<p><h3>MooRTE: The Mootools Rich Text Editor</h3></p>
<p>
MooRTE is a great MooTools rich text editor.  MooRTE is lightweight, customizable, and very easily skinnable.  Try MooRTE out in your CMS!</p>
<p><a href="http://siteroller.net/projects/moorte/">http://siteroller.net/projects/moorte/</a></p>

<p><h3 style="clear:both;">Call to Upgrade: MooTools 1.1.2 and MooTools 1.2.4</h3></p>
<p>Remember to upgrade your MooTools 1.1 and MooTools 1.2 builds to 1.1.2 and 1.2.4 respectively.  Firefox 3.6 has removed document.getBoxObjectFor which will impact Gecko detection.</p>
<p><a href="/blog/2009/11/02/upgrade-mootools/">/blog/2009/11/02/upgrade-mootools/</a></p>


<p><h3>Keep Up the Good Work!</h3></p>
<p>These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your plugins in future posts!</p>

]]></description><pubDate>Sat, 07 Nov 2009 01:51:48 GMT</pubDate><guid isPermaLink="true">/blog/2009/11/06/mootools-roundup-october-2009</guid></item><item><title>Call to Upgrade: MooTools 1.1.2 and MooTools 1.2.4</title><link>/blog/2009/11/02/upgrade-mootools</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>You&#39;ve probably noticed a flurry of MooTools 1.2 updates recently, including updates to both MooTools Core and More.  We&#39;re happy to give them to you and hope you continue to upgrade your existing MooTools 1.2.x builds. We would like to bring to you attention an upgrade to the <a href="/download/version/1.1.2">MooTools 1.1.2 build</a> and <a href="/download">MooTools 1.2.4 build</a> which should be considered a mandatory upgrade for developers still using MooTools 1.1 and MooTools &lt; 1.2.4.</p>


]]></description><pubDate>Mon, 02 Nov 2009 22:43:18 GMT</pubDate><guid isPermaLink="true">/blog/2009/11/02/upgrade-mootools</guid></item><item><title>MooTools More 1.2.4.2</title><link>/blog/2009/10/27/mootools-more-1-2-4-2</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>There&#39;s nothing like releasing code to uncover glitches. Since last week&#39;s release of MooTools Core 1.2.4 and MooTools More 1.2.4.1, there have been a few bugs reported and we wanted to get the fixes out to you as quickly as possible. Most of these are minor. We have unit tests for all the classes we release, but writing a test for every possible configuration is tough, and it&#39;s the real world that sees these features used in ways we can&#39;t imagine.</p>
<p>Today&#39;s release offers no new features, a lot of very minor fixes (to docs and the like), and the restoration of a few changes to the API that weren&#39;t intended (Tips and Fx.Slide, in particular).</p>

]]></description><pubDate>Tue, 27 Oct 2009 19:50:23 GMT</pubDate><guid isPermaLink="true">/blog/2009/10/27/mootools-more-1-2-4-2</guid></item><item><title>MooTools 1.2.4</title><link>/blog/2009/10/19/mootools-1-2-4</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>It&#39;s been three months <em>to the day</em> since <a href="/blog/docs/null/19/mootools-123-released" alt="the last point release of MooTools">the last point release of MooTools</a> and we&#39;re excited about all the goodness packed into this release. At this point, the 1.2 codebase has a very stable API, and our current plan is to release these point releases every three months or so until the 2.0 codebase is online. If we find any serious bugs, though, we&#39;ll be sure to get fixes into your hands as fast as we can.</p>

]]></description><pubDate>Mon, 19 Oct 2009 22:41:18 GMT</pubDate><guid isPermaLink="true">/blog/2009/10/19/mootools-1-2-4</guid></item><item><title>Enhanced MooTools Search Launched</title><link>/blog/2009/10/12/enhanced-mootools-search-launched</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>The MooTools team would like to announce the launch of an enhanced MooTools web search:</p>

<p>MooTools Search Beta:  <a href="/search">/search</a></p>

<p>
This enhanced search has been integrated with the MooTools documentation and will help you easily navigate and identify information in the  documentation better than the previous documentation search.  The new search system also searches multiple domains -- this will allow you to find MooTools demos, forum posts, tutorials, screencasts, and anything MooTools-related.  Initial supporting domains include MooTools.net, Clientcide, The MooTorial, David Walsh Blog, etc.   We will also pay attention to most-searched terms and aim to ensure the search feature is providing sufficient, quality results.
</p>

<p>This enhanced search release is considered beta.  We will soon be adding further enhancements based on team goals (including full site search, etc.) and feedback provided by our most valued asset:  the MooTools community.</p>

<p>Special thanks to <a href="http://twitter.com/fakedarren">Darren Waddell</a> <code>(fakedarren)</code> for all of his hard work in implementing and maintaining the new search system!  </p>
]]></description><pubDate>Mon, 12 Oct 2009 12:28:01 GMT</pubDate><guid isPermaLink="true">/blog/2009/10/12/enhanced-mootools-search-launched</guid></item><item><title>MooTools Roundup - September 2009 </title><link>/blog/2009/10/04/mootools-roundup-september-2009</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>The foundation of every great open source project is its community. The MooTools Team creates the base framework code but it’s all of you that take the framework and build outstanding plugins. Here are some great plugins and tutorials that have been released recently.</p>

<p><h3>MilkChart</h3></p>
<p>
<a href="http://code.google.com/p/milkchart/"><img src="/uploads/line-chart.png" alt="MilkChart" style="float:right;margin:0 0 15px 15px" /></a>
MilkChart is an outstanding set of MooTools classes that create robust charts from your static data.  Chart types include column, bar, line, scatter, and pie.  MilkChart uses the HTML5 &lt;canvas&gt; tag and is only supported on browsers other than IE.<br /><br /><a href="http://code.google.com/p/milkchart/">http://code.google.com/p/milkchart/</a></p>


<div style="clear:both;"></div>

<p><h3>MooTools Tree Component</h3></p>
<p>
<a href="http://cpojer.net/blog/MooTools_Tree_Components"><img src="/uploads/tree-component.png" alt="Tree Component" style="float:right;margin:0 0 15px 15px" /></a>
MooTools Core Developer Christoph Pojer <code>(cpojer)</code> released Tree Component, an advanced tree structure plugin which allows for drag and drop organization, cookie tree saving, and collapsible branches.<br /><br /><a href="http://cpojer.net/blog/MooTools_Tree_Components">http://cpojer.net/blog/MooTools_Tree_Components</a></p>

<div style="clear:both;"></div>

<p><h3>MTMultiSelect</h3></p>
<p>
<a href="http://www.justindonato.com/demo/mtmultiselect/"><img src="/uploads/multiselect.png" alt="MTMultiSelect" style="float:right;margin:0 0 15px 15px" /></a>
Authored by Justin Donato, MTMultiSelect is a great plugin that allows you to select multiple items from a paginated list.   You may also search the list of items to quickly identify the items you&#39;d like to select.<br /><br /><a href="http://www.justindonato.com/demo/mtmultiselect/">http://www.justindonato.com/demo/mtmultiselect/</a></p>

<div style="clear:both;"></div>

<p><h3>MultipleLinks</h3></p>
<p>
<a href="http://thejavascriptblog.com/mootools-multiple-links-class/"><img src="/uploads/multiplelinks.png" alt="MultipleLinks" style="float:right;margin:0 0 15px 15px" /></a>
MultipleLinks is a MooTools class created by Merrick Christensen.  MultipleLinks is a tooltip-like plugin that provides the user a list of possible destinations to click to.  MutipleLinks is also highly skinnable.
<br /><br /><a href="http://thejavascriptblog.com/mootools-multiple-links-class/">http://thejavascriptblog.com/mootools-multiple-links-class/</a></p>


<div style="clear:both;"></div>

<p><h3>Request.Twitter</h3></p>
<p>MooTools Core Developer Scott Kyle <code>(appden)</code> created Request.Twitter, a very small MooTools class to retrieve tweets from Twitter.  The class is flexible in that you may define the URL to query so you may retrieve user statuses, search terms, etc.  Request.Twitter is an extension of the Request.JSONP class in MooTools More, showing the power MooTools&#39; valuable inheritance system.<br /><br /><a href="http://appden.com/javascript/get-tweets-with-mootools/">http://appden.com/javascript/get-tweets-with-mootools/</a></p>

<div style="clear:both;"></div>

<p><h3>Keep Up the Good Work!</h3></p>
<p>
These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your future plugins in upcoming posts!
</p>
]]></description><pubDate>Sun, 04 Oct 2009 19:03:11 GMT</pubDate><guid isPermaLink="true">/blog/2009/10/04/mootools-roundup-september-2009</guid></item><item><title>New MooTools Core &amp; More Releases;  Forge, Depender, ART, and Moo 2 on the Horizon</title><link>/blog/2009/09/22/mootools-124-released</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>There&#8217;s always a lot going on behind the scenes with the MooTools javascript framework.  And how could there not be?  Here&#8217;s a look at what&#8217;s coming in the next few months.</p>

<h3>MooTools Core 1.2.4 and 1.1.2</h3>
<p>As we turn our attentions towards MooTools 2.0, version 1.2 will not receive any significant upgrades. However, until MooTools 2.0 is released we will continue to support the current version with bug fixes. To that end we&#8217;re releasing MooTools Core 1.2.4 which fixes several small bugs and addresses a change coming in the next release of Firefox. Because of this inconvenient Firefox change, we&#8217;ll also be releasing MooTools Core 1.1.2, an update to the 1.1.1 release. Sites using 1.1.1 will be able to drop in 1.1.2 without it affecting anything. We&#8217;ll post more details on this when we release these two updates.</p>

<h3>MooTools More 1.2.4.1</h3>

<p>While the 1.2 version of MooTools Core no longer accepts additions, MooTools More, the official plugins collection, continues to be iterated upon constantly. Included in the next version of MooTools More (1.2.4.1) are numerous bug fixes and performance enhancements, along with new widgets, classes, and extensions for you to play with. Here are a few:</p>

<p><img src="/uploads/zebra.png" alt="Zebra Table" style="float:right;margin:0 0 20px 20px;" /></p>
<ul>
<li>Mask - An overlay class that allows you to put a semi-transparent layer above any element, including the window.</li>
<li>Spinner - This class automates putting an AJAX indicator over any element.</li>
<li>Form.Request - This class makes any form element into an AJAX form.</li>
<li>HtmlTable - This suite of classes let you create HTML tables on the fly, update and alter their contents, make them zebra striped, selectable, and sortable.</li>
<li>Keyboard - The Keyboard class provides the tools necessary to manage a complex user interface with different keyboard enhancements.</li>
</ul>

<h3>Depender</h3>

<p>Another plugin coming in MooTools More 1.2.4.1 is a client side dependency manager. This class allows you to lazy-load files from the MooTools libraries and any other libraries that use similar organization (i.e. those that map their dependencies with the same mechanisms). </p>

<p>In addition to this client side implementation of the dependency loader is a server side version that greatly improves performance. The server side implementation concatenates and (optionally) compresses the files together so that there&#8217;s only one request and is far more efficient.</p>

<h3>MooTools ART</h3>

<p>
<img src="/uploads/art.png" alt="MooTools ART" style="float:right;margin:0 0 40px 20px;" />
MooTools ART has been under development off and on for nearly a year now and for the most part has been under wraps. MooTools ART is the foundation for MooTools&#8217; upcoming UI library. Using canvas and VML, it features support for dynamic illustrations, allowing complex UI elements that have numerous interactive states. When released, will come with numerous plugins for stylable windows, buttons, and more.</p>

<p>One of the most interesting ART features is its support for themes using CSS-like syntax in javascript. In conjunction with the default widgets that come with ART we hope to see the MooTools community create numerous interfaces using the system that allows for a fully themable UI by the end of the year.</p>

<h3>Forge</h3>

<p>Anyone who has been around the MooTools forums or IRC channel has heard that the user plugin catalog (which we call the Forge) is always &#8220;coming soon&#8221;. Well, this time, we mean it. The MooTools Forge is a new application which will act as a central repository for MooTools plugins created by, well, by you. The Forge will pull your code directly from GitHub, taking into account versioning and dependencies, and providing plugin usage details.</p>

<p>The Forge is currently in the last stages of testing. Look forward to seeing the MooTools forge by the end of October at the latest.</p>

<h3>MooShell</h3>

<p><a href="http://mooshell.net">MooShell</a> is an outstanding interactive shell editor for debugging your MooTools code created by Piotr Zalewa. Instead of pasting your CSS, javascript, and HTML into static PasteBins, you may use MooShell to show others the issues you are experiencing with your code. You may also quickly experiment with different techniques and share your ideas with others.</p>

<h3>MooTools 2.0</h3>

<p>Your favorite javascript framework is about to become 1.612903225806452 times as awesome. MooTools 2.0 will feature an optimized Fx library, an improved Class class (one of the foundations of the entire framework) and inheritance model, blazing fast selector engine (Slick), numerous speed optimizations, and many more goodies. Look forward to a more detailed post soon!</p>

]]></description><pubDate>Wed, 23 Sep 2009 01:39:40 GMT</pubDate><guid isPermaLink="true">/blog/2009/09/22/mootools-124-released</guid></item><item><title> MooTools Roundup - August 2009</title><link>/blog/2009/09/01/mootools-roundup-august-2009</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
roundup
]]></category><description><![CDATA[
<p>The foundation of every great open source project is its community. The MooTools Team creates the base framework code but it’s all of you that take the framework and build outstanding plugins. Here are some great plugins and tutorials that have been released recently.</p>

<p><h3>MooTools Dependencies Checker</h3></p>
<p>
<a href="http://www.aryweb.nl/projects/mooDeps/"><img src="/uploads/RoundupAugust1Dependencies.png" alt="MooTools Dependency Checker" style="float:right;margin:0 0 15px 15px" /></a>

The MooTools Dependency Checker by Arian Stolwijk parses you javascript files to determine which MooTools classes you need to make the file&#39;s javascript code work.  Arian&#39;s dependency checker is a great tool for those looking to implement a MooTools plugin or use minified code.
</p>
<p><a href="http://www.aryweb.nl/projects/mooDeps/">http://www.aryweb.nl/projects/mooDeps/</a></p><div style="clear:both;"></div>

<h3>MooTools InputMask</h3>
<p>
<a href="http://cpojer.net/blog/InputMask_Class_for_MooTools"><img src="/uploads/RoundupAugust2InputMask.png" alt="InputMask " style="float:right;margin:0 0 15px 15px" /></a>
InputMask is a useful MooTools plugin by Core Developer Christoph Pojer.  InputMask allows you to set a template or &quot;mask&quot; for which a string should be formatted like.  This plugin is great for date, time, or phone number formatting.
</p>
<p><a href="http://cpojer.net/blog/InputMask_Class_for_MooTools">http://cpojer.net/blog/InputMask_Class_for_MooTools</a></p><div style="clear:both;"></div>

<h3>MooTools DatePicker</h3>
<p>
<a href="http://www.monkeyphysics.com/mootools/script/2/datepicker"><img src="/uploads/RoundupAugust3DatePicker.png" alt="DatePicker" style="float:right;margin:0 0 15px 15px" /></a>
DatePicker is a great plugin by MonkeyPhysics.  DatePicker allows you to provide your users with a calendar to choose dates from instead of making users type in the date.  DatePicker is very customizable and allows for easy styling/theming.</p>
<p><a href="http://www.monkeyphysics.com/mootools/script/2/datepicker">http://www.monkeyphysics.com/mootools/script/2/datepicker</a></p><div style="clear:both;"></div>

<h3>MooModernizr</h3>
<p>
<a href="http://www.aryweb.nl/voorbeelden/mooModernizr/"><img src="/uploads/RoundupAugust4MooModernizr.png" alt="MooModernizr" style="float:right;margin:0 0 15px 15px" /></a>
MooModernizr tests the browser&#39;s CSS capabilities -- specifically CSS3 feature detection.  MooModernizr extends MooTools&#39; Browser.Features object.  MooModernizr is a port of the original <a href="http://www.modernizr.com/">Modernizr</a>.</p>
<p><a href="http://www.aryweb.nl/voorbeelden/mooModernizr/">http://www.aryweb.nl/voorbeelden/mooModernizr/</a></p><div style="clear:both;"></div>

<h3>Speed Up Your Moo Part 1: Selectors</h3>
<p>MooTools Core Developer Christoph Pojer shares methods for speeding up your applications through the use of optimized CSS selectors.  Consider this article a must-read if you use Selectors frequently in your large web applications.</p>
<p><a href="http://cpojer.net/blog/Speed_Up_Your_Moo_Part_1_Selectors">http://cpojer.net/blog/Speed_Up_Your_Moo_Part_1_Selectors</a></p><div style="clear:both;"></div>

<h3>JSCocoaLoader</h3>
<p>JSCocoaLoader allows you to develop Espresso.app code editor extensions using MooTools and JSCocoa.  JSCocoaLoader’s utility classes are all powered by Mootools, and as a happy side effect your Javascripts can easily take advantage of Mootools many improvements over vanilla Javascript either by requiring a JSCocoaLoader utility class, or by requiring Mootools directly.</p>
<p><a href="http://wiki.github.com/onecrayon/JSCocoaLoader-sugar/mootools-server">http://wiki.github.com/onecrayon/JSCocoaLoader-sugar/mootools-server</a></p><div style="clear:both;"></div>


<h3>Keep Up the Good Work!</h3>
<p>These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your future plugins in upcoming posts!</p>
]]></description><pubDate>Tue, 01 Sep 2009 17:35:51 GMT</pubDate><guid isPermaLink="true">/blog/2009/09/01/mootools-roundup-august-2009</guid></item><item><title>MooTools Roundup - July 2009</title><link>/blog/2009/07/27/july-2009-roundup</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
roundup
]]></category><description><![CDATA[
<!-- INTRO -->
<p>The foundation of every great open source project is its community. The MooTools Team creates the base framework code but it&#39;s all of you that take the framework and build outstanding plugins. Here are some great plugins and tutorials that have been released recently.</p>


<!-- Plugins -->
<p><h3>MooEditable</h3></p>
<p>
    <a href="http://cheeaun.github.com/mooeditable/"><img src="/uploads/mooeditable.png" alt="MooEditable" style="float:right;margin:0 0 15px 15px" /></a>
    MooEditable is a WYSIWYG editor created by Lim Chee Aun <code>(cheeaun)</code>.<br>    MooEditable features the usual bold, italic, strikethrough, and underline controls as well
    as the ability to add images, links, and lists.
</p>
<p><a href="http://cheeaun.github.com/mooeditable/">http://cheeaun.github.com/mooeditable/</a></p>

<p><h3>MooTools Intellisense</h3></p>
<p>
    <a href="http://code.google.com/p/mootoolsintellisense/"><img src="/uploads/vsintel.png" alt="MooTools Intellisense" style="float:right;margin:0 0 15px 15px" /></a>
    The problem: Visual Studio 2008 doesn&#39;t provide Intellisense for MooTools.  The solution:  Darren Waddell <code>(fakedarren)</code>.
    Darren has created Intellisense for our favorite javascript framework.  Grab this package to increase your productivity within
    Visual Studio!
</p>
<p><a href="http://code.google.com/p/mootoolsintellisense/">http://code.google.com/p/mootoolsintellisense/</a></p>


<p><h3>PageZoom</h3></p>
<p>
    <a href="http://cheeaun.github.com/pagezoom/"><img src="/uploads/page-zoom.png" alt="MooTools PageZoom" style="float:right;margin:0 0 15px 15px" /></a>
    Lim Chee Aun <code>(cheeaun)</code> also blessed the MooTools community with PageZoom, a flexible zooming widget
    that allows you to zoom in on any element within the page.  The plugin is especially valuable for zooming in on
    photos.
</p>
<p><a href="http://cheeaun.github.com/pagezoom/">http://cheeaun.github.com/pagezoom/</a></p>


<p><h3>Notification Message Dispatch for MooTools</h3></p>
<p>
    Tobias Svensson has created NotificationCenter, a simple implementation of a notification center for MooTools which
    is heavily inspired by NSNotificationCenter from Apple&#39;s Cocoa framework.
</p>
<p>
    <a href="http://return42.blogspot.com/2009/07/notification-message-dispatch-for.html">http://return42.blogspot.com/2009/07/notification-message-dispatch-for.html</a>
</p>

<p><h3>PyCow</h3></p>
<p>
    As the description says: PyCow translates Python code to JavaScript code with the &quot;MooTools way of class declaration&quot;.
    Examples of PyCow&#39;s mindblowing functionality can be seen at the PygoWave Server Google Code site.
</p>
<p>
    <a href="http://code.google.com/p/pygowave-server/wiki/PythonToJavaScriptTranslator">http://code.google.com/p/pygowave-server/wiki/PythonToJavaScriptTranslator</a>
</p>


<!-- Tutorials -->
<p><h3>Up the Moo Herd:  MooTools Tips and Tricks</h3></p>
<p>
    MooTools contributor Mark Obcena <code>(Keeto)</code> examines and explains the finer points of the
    MooTools Core.  His articles are detailed, accurate, and  must-reads for MooTools developers.
    Three posts have been published thus far:<br>    <a href="http://keetology.com/blog/2009/07/01-up-the-moo-herd-i-playing-fetch">The DOM Fetcher Functions</a>,
    <a href="http://keetology.com/blog/2009/07/20/up-the-herd-ii-native-flora-and-fauna">Natives, Generics and Extending the Language</a>, 
    <a href="http://keetology.com/blog/2009/07/23/up-the-moo-herd-iii-its-classy-not-classic">Classes: Constructors, Singletons and Privates</a>.
</p>

<p><h3>Why You Shouldn’t Return False in MooTools Event Handlers</h3></p>
<p>
    MooTools Core Developer Sebastian Markbåge explains why returning false in event handlers can cause you problems.  Check out
    Sebastian&#39;s tutorial to learn more about event bubbling and the proper way of handling events.
</p>
<p>
    <a href="http://blog.calyptus.eu/seb/2009/07/why-you-shouldnt-return-false-in-mootools-event-handlers/">http://blog.calyptus.eu/seb/2009/07/why-you-shouldnt-return-false-in-mootools-event-handlers/</a>
</p>


<p><h3>Keep Up the Good Work!</h3></p>
<p>These are just a few of the great MooTools plugins floating around the MooTools community recently. Keep up the good work and we look forward to featuring your future plugins in upcoming posts!</p>


]]></description><pubDate>Mon, 27 Jul 2009 18:11:55 GMT</pubDate><guid isPermaLink="true">/blog/2009/07/27/july-2009-roundup</guid></item><item><title>MooTools Roundup - June 2009</title><link>/blog/2009/06/24/roundup-1</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
roundup
]]></category><description><![CDATA[
<p>The foundation of every great open source project is its community.  The MooTools Team creates the base framework code but it&#39;s all of you that take the framework and build outstanding plugins.  Here are some great plugins that have been released recently.</p>
<h3>Slideshow 2</h3>
<a href="http://www.electricprism.com/aeron/slideshow/"><img src="/uploads/slideshow2.jpg" alt="Slideshow 2" style="float:right;margin:0 0 15px 15px" /></a>
Slideshow 2 by Aeron Glemann is an outstanding photo / slideshow plugin that offers a plethora of options and features -- many more than you&#39;d find with the average slideshow or lightbox.  Slideshow 2 features Robert Penner easing transitions, photo delays, duration settings, the ability to make Slideshow 2 a lightbox, and an on-photo control panel.

<a href="http://www.electricprism.com/aeron/slideshow/">http://www.electricprism.com/aeron/slideshow/</a>

<div style="clear:both;"></div>

<h3>MooTools FileManager</h3>
<a href="http://cpojer.net/blog/MooTools_based_FileManager"><img src="/uploads/fmanager.jpg" alt="File Manager" style="float:right;margin:0 0 15px 15px" /></a>
Created by MooTools Core Developer Christoph Pojer, MooTools FileManager is a MooTools-driven file manager that allows for drag and drop file management, Ajax directory loading, file content previews, and much more.

<a href="http://cpojer.net/blog/MooTools_based_FileManager">http://cpojer.net/blog/MooTools_based_FileManager</a>
<div style="clear:both;"></div>

<h3>Moousture</h3>
<a href="http://neofreeman.freepgs.com/Moousture/"><img src="/uploads/moousture.jpg" alt="Moousture" style="float:right;margin:0 0 15px 15px" /></a>
Moousture is a MooTools Mouse Gesture library created by Zohaib Sibt-e-Hassan.  Moousture allows you to create multiple geture patterns and assign them to any number of elements.
<a href="http://neofreeman.freepgs.com/Moousture/">http://neofreeman.freepgs.com/Moousture/</a><div style="clear:both;"></div>

<h3>Fancy Upload 3</h3>
<a href="http://digitarald.de/project/fancyupload/"><img src="/uploads/fancy.png" alt="Fancy Upload" style="float:right;margin:0 0 15px 15px" /></a>
Fancy Upload 3 is the newest iteration of Harlad Kirschner&#39;s popular Flash/MooTools upload tool.  Fancy Upload 3 features file-specific options, an additional IFrame-based uploader, Flash 9 and 10 compatibility, and the same base features that made Fancy Upload a must-have plugin.

<a href="http://digitarald.de/project/fancyupload/">http://digitarald.de/project/fancyupload/</a><div style="clear:both;"></div>

<h3>MooTools.Mode For Coda</h3>
If you spend hours with MooTools and the Coda text editor, you&#39;ll love the MooTools.Mode Syntax Mode add-in.  This package created by José Prado is free and easy to install.

<a href="http://pradador.com/code/coda/moomode.html">http://pradador.com/code/coda/moomode.html</a><div style="clear:both;"></div>

<h3>Keep Up the Good Work!</h3>

<p>These are just a few of the great MooTools plugins floating around the MooTools community recently.  Keep up the good work and we look forward to featuring your future plugins in upcoming posts!</p>

]]></description><pubDate>Wed, 24 Jun 2009 13:59:39 GMT</pubDate><guid isPermaLink="true">/blog/2009/06/24/roundup-1</guid></item><item><title>The Dollar Safe Mode</title><link>/blog/2009/06/22/the-dollar-safe-mode</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>Since the dawn of time, MooTools used a method named <code>$</code> to get an HTML element by it&#39;s id or direct reference. This method name, being the coolest and shortest you can find in JavaScript, is also used by a number of other javascript frameworks and libraries for similar functionality. Now, we do not think including 2 libraries or frameworks is OK. It&#39;s not. <em>Never</em>. It&#39;s an overhead of duplication you do not want to have. However, you might not have the full control of the page in some circumstances, and we recognize that. That&#39;s why we implemented this: <strong>Dollar Safe Mode</strong>™. It&#39;s nothing special really, but it should help in those situations where including multiple libraries is not your choice (because if it is, quite frankly, you&#39;re doing everything wrong. Pick one, will you? And make sure it&#39;s MooTools :-)).</p>
<p>MooTools 1.2.3 <em>DOM</em> stuff doesn&#39;t depend on the presence of <code>$</code> anymore. The method that used to be <code>$</code> is now called <code>document.id</code> (short for identify). The method <code>$</code> is still assigned when not already present in the page, and aliased to <code>document.id</code>.</p>
<p>But let me show you how it works:</p>
<p>Let&#39;s say you have mootools.js and a fictional JS library called jLib.js. Both use a method called <code>$</code>.</p>
<div class="heading clearfix"><h4>This is what it used to happen:</h4></div><div class="heading clearfix"><h5>Scenario 1: Include mootools first:</h5></div><pre><code class="xml"><span class="tag">&lt;<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"mootools.js"</span> /&gt;</span><span class="javascript">
&lt;script type=<span class="string">"text/javascript"</span> src=<span class="string">"jLib.js"</span> /&gt;</span></code></pre><p>jLib would &quot;steal&quot; the <code>$</code> method from MooTools. MooTools doesn&#39;t work unless jLib has some sort of no-conflict mode of its own that will allow you to prevent it from &quot;stealing&quot; <code>$</code> from MooTools.</p>
<div class="heading clearfix"><h5>Scenario 2: Include jLib first:</h5></div><pre><code class="xml"><span class="tag">&lt;<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"jLib.js"</span> /&gt;</span><span class="javascript">
&lt;script type=<span class="string">"text/javascript"</span> src=<span class="string">"mootools.js"</span> /&gt;</span></code></pre><p>MooTools would &quot;steal&quot; the <code>$</code> method from jLib, which may or may not work without it.</p>
<div class="heading clearfix"><h4>What happens now:</h4></div><p>Scenario 1: Include MooTools first:</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"mootools.js"</span> /&gt;</span><span class="javascript">
&lt;script type=<span class="string">"text/javascript"</span> src=<span class="string">"jLib.js"</span> /&gt;</span></code></pre><p>MooTools checks if a method called <code>$</code> exists; if not, it defines it. In this scenario, MooTools defines it as it doesn&#39;t find anything named <code>$</code>, being included first.
jLib &quot;steals&quot; the <code>$</code> method from MooTools.
MooTools doesn&#39;t care. MooTools now doesnt need <code>$</code> to properly function. You can regain control of <code>$</code> simply by reassigning it to its alias (<code>$ = document.id</code>).</p>
<p>Scenario 2: Include jLib first:</p>
<pre><code class="xml"><span class="tag">&lt;<span class="title">script</span> <span class="attribute">type</span>=<span class="value">"text/javascript"</span> <span class="attribute">src</span>=<span class="value">"jLib.js"</span> /&gt;</span><span class="javascript">
&lt;script type=<span class="string">"text/javascript"</span> src=<span class="string">"mootools.js"</span> /&gt;</span></code></pre><p>MooTools checks if a method called <code>$</code> exists. It does find it, being included last, therefore it doesn&#39;t define it. You can directly use <code>document.id()</code> or assign your own var to it, or manually assign <code>$</code> to <code>document.id</code>, if you would like MooTools to have control of it.</p>
<p>As you can see, it&#39;s pretty straightforward. In short, MooTools doesn&#39;t need <code>$</code> to function anymore, and doesn&#39;t steal it from other frameworks when included after them.</p>
<div class="heading clearfix"><h4>Plugins</h4></div><p>The above applies for MooTools-Core and MooTools-More. However, MooTools plugins use the <code>$</code> method, therefore, while not breaking MooTools by including jLib, you will break the MooTools plugins. If you desperately need plugins to be multiple-framework compatible, and you the other frameworks to have control of <code>$</code>, there are a few things you can do.</p>
<p>The first, most obvious and recommended option is to replace every call to <code>$()</code> with <code>document.id()</code> by hand. It doesn&#39;t take more than 10 seconds with a simple find and replace. This is probably what plugin authors should do, if they wish their plugin to be dollar-safe.</p>
<p>Another option is to encapsulate the plugin using a closure. This might come handy if you are processing a plugin that isn&#39;t yours:</p>
<pre><code class="javascript"><span class="keyword">var</span> X = <span class="keyword">new</span> Class({
    initialize: <span class="keyword">function</span>(element){
        <span class="keyword">this</span>.element = $(element);
    }
});</code></pre><p>it should become:</p>
<pre><code class="javascript">(<span class="keyword">function</span>(){

    <span class="keyword">var</span> $ = document.id;

    <span class="keyword">this</span>.X = <span class="keyword">new</span> Class({
        initialize: <span class="keyword">function</span>(element){
            <span class="keyword">this</span>.element = $(element);
        }
    });

})();</code></pre><p>As you can see, we&#39;ve simply assigned <code>$</code> as a local variable, using a closure. Everything in that closure will use <code>document.id</code> as its <code>$</code> method. Remember to export the global variables though, as vars defined in the closure will stay private. I like to export globals using <code>this.</code>, but you can use <code>window.</code> as well.</p>
<p>Please note that MooTools will probably remain incompatible with other frameworks that modify native prototypes, as there will probably be more name clashes. This isn&#39;t a cross-framework compatible MooTools version by any means, nor does it want to be. The whole point is not to &quot;steal&quot; the dollar function from other libraries.</p>
<p>And that&#39;s pretty much it about the <strong>Dollar Safe Mode</strong>™ in MooTools 1.2.3.</p>

]]></description><pubDate>Mon, 22 Jun 2009 15:39:51 GMT</pubDate><guid isPermaLink="true">/blog/2009/06/22/the-dollar-safe-mode</guid></item><item><title>MooTools 1.2.3 Released</title><link>/blog/2009/06/19/mootools-123-released</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we give you what will likely be the final release of the MooTools Core before the jump to 2.0.  While <a href="/download">MooTools 1.2.3</a> is primarily a bug-fixing release, MooTools 1.2.3 also introduces an important new feature:  Framework compatibility mode.</p>
<p>The value in making this change is allowing developers to use more than one framework within a page (which is NOT something we recommend or endorse, but we recognize this is not always under the developer&#39;s control).  Not relying on the dollar function prevents the need for <em>jQuery.noConflict()</em> when using jQuery and MooTools together, for example.  <em>If no other framework is detected, however, <em>$</em> will be assigned to MooTools.</em>  This means that all of your current MooTools code WILL NOT break. It does, however, mean that if you want to use MooTools and jQuery together (without using jQuery&#39;s <em>noConflict</em> mode), instead of using $ in your MooTools code, you&#39;ll have to use document.id().  </p>
<p>If you want your MooTools plugins to be cross-framework compatible, you&#39;ll have to replace all the instances of $ with document.id().This change only applies if you&#39;re using more than one framework on your pages. If all you use is MooTools, nothing will change for you.  Look forward to more details about Framework compatibility mode in a future post.</p>
<p><h3>MooTools Core &amp; More Updates</h3>
While we encourage you to browse <a href="http://mootools.lighthouseapp.com">LightHouse</a> and the histories for <a href="http://github.com/mootools/mootools-core/commits/master/">MooTools Core</a> and <a href="http://github.com/mootools/mootools-more/commits/master/">MooTools More</a> to get the most detailed list of changes,  the following significant updates were committed in MooTools 1.2.3:</p>
<p><h4>Core</h4></p>
<ul>
    <li>Element: MooTools compatibility mode: the $ function is only defined if no pre-existing $ function is found. If an existing $ function is found, you can use document.id()</li>
    <li>Element: changed internal instances of $ to document.id</li>
    <li>Core: fix for server-side MS JScript 5.x; makes MooTools more friendly for server side programming</li>
    <li>Class: Class doesn&#39;t require Browser, removed from scripts.json</li>
    <li>Element: Fixes for set/get Property</li>
    <li>Element.Dimensions: fix for webkit body.scrollTop inconsistency, getBoundingClientRect used whenever possible (not just for Trident), renaming element.position to element.setPosition; adding docs for the method; alias is included in-line for compatibility</li>
    <li>Hash: Hash extend no longer uses the window if no arguments supplied </li>
    <li>Request: clearing Request readystate before calling success or failure;</li>
    <li>Selectors: Added :enabled pseudoselector, was in the Docs but not implemented.</li>
    <li>Docs: Fixed docs headers for first-child, last-child, and only-child.</li>
    <li>Internal: UnitTester test suite is now a git submodule</li>
    <li>Numerous small fixes, speed improvements, documentation tweaks, etc.</li>
</ul>

<p><h4>More</h4></p>
<ul>
<li>Per the change in -core, $ is no longer used (uses document.id instead)</li>
<li>Element.Measure: trying cssText solution for Element.expose (again).</li>
<li>Element.Forms: swapping feature detection for browser support per</li>
<li>Date: Massive refactoring of Date.js and Date.Extras.js</li>
<li>Drag.Move: Fixing drag with grid issues</li>
<li>IframeShim: altering zindex assignment in IframeShim to better ensure that it&#39;s always underneath the shimmed element, updating Iframeshim&#39;s empty document creation; fixes https issues in IE6</li>
<li>FormValidator: reworking formvalidator scroll-to logic to be a little more efficient</li>
<li>OverText: preventing overtext from focusing on inputs except when they are interacted with (so OverText.update() does not focus an input);now stops polling when elements are hidden (when polling is enabled)</li>
<li>Fx.Scroll: adding scrollIntoView method - scrolls an element so that it is completely visible; if below the view, scrolls down until it is at the bottom of the screen, if above, scrolls up until it is at the top.</li>
<li>JSONP: was calling (the deprecated) this.request instead of this.send during retries</li>
<li>URI: Adding set(&#39;data&#39;, obj) to set</li>
<li>Assets: adding error callback for Assets.images</li>
<li>Tips: removing dependency for Element.Measure for Tips; updating CSS class name in OverText</li>
<li>Numerous small fixes, speed improvements, documentation tweaks, etc.</li>
</ul>


<p><h3>MooTools 2.0 is on the Horizon</h3>
As mentioned above, 1.2.3 is likely the last update for MooTools 1.2.  MooTools 2.0 will introduce numerous performance improvements and new features.  We want to stress that MooTools 2.0 will feature 100% compatibility with MooTools 1.2.x.  </p>
<p><h3>Thank You!</h3>
Thank you for the bug fixes, feature requests, and support during MooTools&#39; 1.* lifetime. You, the MooTools community, have helped make this framework better with every bug found and question asked on the forum. We look forward to releasing MooTools 2.0 this summer and getting feedback from everyone in this awesome community.</p>

]]></description><pubDate>Fri, 19 Jun 2009 21:32:40 GMT</pubDate><guid isPermaLink="true">/blog/2009/06/19/mootools-123-released</guid></item><item><title>Faces of Moo:  Represent Your Framework!</title><link>/blog/2009/05/29/faces-of-mootools</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p><img src="http://davidwalsh.name/dw-content/chris-small.jpg" alt="Christoph Pojer" style="margin:0 0 20px 20px;float:right;" /></p>
<p>Last week we announced that <a href="/blog/2009/05/20/mootools-merchandise-available/">MooTools merchandise was available for purchase</a>.  We&#39;ve seen a great response to the announcement and we&#39;ve received a solid amount of orders.  Thank you for your continued support!  Now it&#39;s time for us to show you our appreciation.</p>
<p>The MooTools team would like to announce Faces of Moo.  Faces of Moo is where we post photos of you and fellow community members wearing your MooTools shirts, hats, and hoodies.  What better way to strengthen the MooTools community than by showing its talented members wearing their Moo colors?</p>
<h3>What do you need from me?</h3>

<p>Please provide the following items:</p>
<p><ul>
    <li>Name (if you feel comfortable sharing)</li>
    <li>Location (ex: &quot;Los Angeles, CA, USA&quot;)</li>
    <li>Website URL (if you have one)</li>
    <li>Photo (we will crop/resize as needed, so please provide a large photo)</li>
</ul>
Easy enough, right?</p>
<h3>Where do I send my information?</h3>

<p>Please send the information above to <a href="mailto:mootoolspeople@gmail.com">mootoolspeople@gmail.com</a>.  We&#39;ll get you up on the site as soon as we can.</p>
<h3>Thank you!</h3>

<p>Again -- thank you, thank you, thank you for all of your support and look forward to bigger and better things from the MooTools team!</p>

]]></description><pubDate>Fri, 29 May 2009 14:05:06 GMT</pubDate><guid isPermaLink="true">/blog/2009/05/29/faces-of-mootools</guid></item><item><title>MooTools Merchandise Available!</title><link>/blog/2009/05/20/mootools-merchandise-available</link><dc:creator><![CDATA[
David Walsh
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Due to popular demand, we&#39;ve made available a bounty of new MooTools merchandise available for purchase in the United States and Europe. New items include:</p>
<ul>
    <li>T-Shirts</li>
    <li>Hoodies</li>
    <li>Laptop Bags</li>
    <li>Hats</li>
</ul>

<p>You can purchase these stylish items at:  <a href="/merch">/merch</a></p>
<h3>Feedback wanted!</h3>

<p>Can you think of merchandise you&#39;d like to see in the MooTools store? Be sure to let us know in the comments below!</p>
<h3>What are you waiting for?</h3>

<p><a href="/merch">Grab your MooTools merchandise</a> and represent your framework!</p>
<p><em>Note: The above link will attempt to send you to the correct store based upon your location.  If the above link fails, please visit <a href="http://mad4milk.spreadshirt.com/">http://mad4milk.spreadshirt.com/</a> if you are in the US and <a href="http://mad4milk.spreadshirt.net/">http://mad4milk.spreadshirt.net/</a> if you are in Europe.</em></p>

]]></description><pubDate>Wed, 20 May 2009 20:08:16 GMT</pubDate><guid isPermaLink="true">/blog/2009/05/20/mootools-merchandise-available</guid></item><item><title>MooTools More 1.2.2.2</title><link>/blog/2009/05/05/mootools-more-1222</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we&#39;re releasing a small update to MooTools More that address a few bugs and minor feature requests that cropped up after the initial launch. Briefly, these are the things changed since 1.2.2.1:</p>
<p><ul>
    <li>Removed debug statement that enabled IframeShim in all browsers by default<a href="https://mootools.lighthouseapp.com/projects/24057/tickets/47-iframeshim-added-in-all-browsers-by-default"></a></li>
    <li>Fixed a few docs typos<a href="https://mootools.lighthouseapp.com/projects/24057/tickets/42-typo-in-requestjsonp-docs"></a></li>
    <li>Removed UTF-8 charset signature on String.QueryString and URI.Relative</li>
    <li>Assets.image now have an onError option and handle image load failure more gracefully</li>
    <li>FormValidator.Inline had issues displaying some of it&#39;s validators when input values changed</li>
    <li>OverText now allows you to specify the element type for the label test (defaults to &quot;label&quot;)</li>
    <li>Fixed an issue with addRequests in Request.Queue; the arguments were reversed (addQueue still worked fine though)</li>
</ul>
None of these changes should affect your usage of the class, except, possibly, the change to OverText, as the element it previously created for the labels was a div. If you styled these with css and referenced the tag name, you&#39;ll either need to update your css reference or pass in <em>element: &quot;div&quot; </em>as an option when you invoke the class.</p>

]]></description><pubDate>Tue, 05 May 2009 22:51:48 GMT</pubDate><guid isPermaLink="true">/blog/2009/05/05/mootools-more-1222</guid></item><item><title>MooTools 1.2.2 and the New MooTools More</title><link>/blog/2009/04/23/mootools-122-and-the-new-mootools-more</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we&#39;re releasing two goodies for you: MooTools 1.2.2 and the new MooTools More (1.2.2.1).</p>
<div class="heading clearfix"><h4>Core</h4></div><p>MooTools 1.2.2 is a mainly a bug fix release but it also includes an almost entirely new Class.js. The reasoning behind this is that the old Class.js didn&#39;t play nicely with some advanced usages of this.parent() present in the new MooTools-More. We already had the script ready and tested in the MooTools 2.0 branch so we simply &quot;backported&quot; it to 1.2.2. Other than providing the parent fixes, the new Class also features a much more robust inheritance model, especially when dealing with objects.</p>
<p>For example, the objects you implement now in a class are merged if an object with the same name is found in the class prototype:</p>
<pre><code class="javascript"><span class="keyword">var</span> Animal = <span class="keyword">new</span> Class({
    options: {
        color: <span class="string">'brown'</span>,
        says: <span class="string">'hissss'</span>
    }
});

Animal.implement(<span class="string">'options'</span>, {says: <span class="string">'meow'</span>});

<span class="comment">// Animal.prototype.options is now {says: 'meow', color: 'brown'};</span></code></pre><p>This is especially useful when overriding default options in classes, such as Request.</p>
<p>Another object-oriented feature we introduced is that now sub-objects are actually inherited Parent-to-Child. If you implement a new option in <em>Animal</em>, then <em>Cat</em>, which is a subclass of <em>Animal</em>, <em></em>will get the new option as well, and so will every instance already existing. An example:</p>
<pre><code class="javascript"><span class="keyword">var</span> Cat = <span class="keyword">new</span> Class({
    Extends: Animal
});

<span class="keyword">var</span> kitty = <span class="keyword">new</span> Cat();

Animal.implement(<span class="string">'options'</span>, {nu: <span class="string">'one'</span>});

Cat.prototype.options.nu == <span class="string">'one'</span> <span class="comment">//true</span>
kitty.options.nu == <span class="string">'one'</span> <span class="comment">//true</span></code></pre><p>This obviously also applies to methods.</p>
<p>Additional changes to the MooTools Core in 1.2.2 are mostly minor bug fixes.</p>
<div class="heading clearfix"><h4>More</h4></div><p>One of the new features of MooTools-More, since the last RC, is that it is now possible access the previous state of overwritten methods of classes through Class.refractor. An example:</p>
<pre><code class="javascript"><span class="keyword">var</span> Cat = <span class="keyword">new</span> Class({
    energy: <span class="number">0</span>,
        eat: <span class="keyword">function</span>(){
            <span class="keyword">this</span>.energy++;
    }
});

Cat = Class.refactor(Cat, {
    eat: <span class="keyword">function</span>(){
        <span class="keyword">this</span>.previous(); <span class="comment">//energy++!</span>
        alert(<span class="string">"this cat has "</span> + <span class="keyword">this</span>.energy + <span class="string">" energy"</span>);
    }
});</code></pre><p>This functionality allows users to integrate seamlessly with existing classes, and add to existing methods without the need to subclass.</p>
<p>We&#39;re considering some way to make this behavior more generic for a possible inclusion in MooTools-Core 2.0.</p>
<p>The first RC of MooTools-More produced a lot of feedback and contributions that we&#39;ve integrated as we prepared for our full release. Following this full release of the new MooTools More plugins, we&#39;ll begin adding new features quickly and regularly with what we hope will be biweekly releases.</p>

]]></description><pubDate>Fri, 24 Apr 2009 00:53:34 GMT</pubDate><guid isPermaLink="true">/blog/2009/04/23/mootools-122-and-the-new-mootools-more</guid></item><item><title>A New Name for MooTools</title><link>/blog/2009/04/01/a-new-name-for-mootools</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
news
]]></category><description><![CDATA[
<p><strong>UPDATE</strong>: Sincere thanks to all of you who actually believed this was real news! April Fools&#39; wouldn&#39;t be as much fun without you.</p>
<p>The MooTools project has been around for quite some time now. We&#39;ve seen a few releases, some great, some less great (1.0). We&#39;ve coded tons of plug-ins, scripts, websites, applications and desktop applications using our beloved MooTools. However, the community is really starting to get tired, tired of this project name. I mean, seriously, we&#39;re really fed up with cows. We even tried to &quot;sell&quot; it as My Object Oriented Tools, but we all know that&#39;s a stretch, and a pretty bad one.</p>

]]></description><pubDate>Wed, 01 Apr 2009 05:00:57 GMT</pubDate><guid isPermaLink="true">/blog/2009/04/01/a-new-name-for-mootools</guid></item><item><title>More To Love</title><link>/blog/2009/03/09/more-to-love</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>I know, sometimes when you look at the source code of MooTools you ask yourself, &quot;How could this possibly be any better? Because it&#39;s so <em>awesome</em>.&quot; I am by and large always stumped by this question, as the code is so meticulously maintained by its authors.</p>
<p>Today, I have an answer. The only way to give you a better MooTools is to give you <em>more of it</em>. It&#39;s that awesome. Today, we&#39;re making MooTools awesomer.</p>
<p>We give you the new and improved MooTools More - the official plugin collection for MooTools. The plugins we are releasing today take the fifteen files previously in MooTools More and triple them. That&#39;s three times the awesome!</p>

]]></description><pubDate>Mon, 09 Mar 2009 22:28:03 GMT</pubDate><guid isPermaLink="true">/blog/2009/03/09/more-to-love</guid></item><item><title>2009, The Year of the Cow - What's Coming with MooTools</title><link>/blog/2009/02/02/2009-the-year-of-the-cow-whats-coming-with-mootools</link><dc:creator><![CDATA[
Aaron Newton
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Ok, it&#39;s the <a href="http://en.wikipedia.org/wiki/Ox_(zodiac)">year of the Ox</a>, but you get the idea. Regardless, it&#39;s shaping up to be a very interesting one for MooTools. There are many things going on with the framework and we thought we&#39;d give you a heads up on what you should expect in the coming weeks and months.</p>

]]></description><pubDate>Tue, 03 Feb 2009 01:51:27 GMT</pubDate><guid isPermaLink="true">/blog/2009/02/02/2009-the-year-of-the-cow-whats-coming-with-mootools</guid></item><item><title>Sizzle</title><link>/blog/2008/12/04/sizzle</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>During the last couple of days, there has been a <a href="http://ajaxian.com/archives/a-great-example-of-sharing-sizzle-engine-in-dojo-foundation">discussion</a> in <a href="http://www.clientcide.com/industry-news/sizzle-power-in-mootools/
">various places</a> about JavaScript frameworks implementing Sizzle, the new CSS selector engine by John Resig, which is allegedly the fastest.</p>
<p>Resig wrote <a href="http://tomocchino.com">Tom</a> an email, saying that he would be pleased if MooTools joined the other frameworks by implementing Sizzle in its codebase, replacing our own selectors engine. I don&#39;t really know how many frameworks are actually thinking of using Sizzle in place of their own selectors code, as the only source I can find for this is Ajaxian.</p>
<p>Their information about Dojo wasn&#39;t correct, so I&#39;m assuming that information about other frameworks is incorrect as well. I do know that Dojo is considering including Sizzle as part of the Dojo foundation, based on an <a href="http://www.clientcide.com/best-practices/dojos-dylan-schiemann-and-jquerys-john-resig-on-my-sizzle-post/
">email Dylan Schiemann wrote to Aaron Newton</a>. As I understand it, Sizzle would become a Dojo Foundation project, with the ultimate goal of including it into Dojo Toolkit. They have this idea of having the major framework developers all contribute to a unified CSS selector engine.</p>
<p>Now that you know the general picture, let me explain why this is a bad idea not only for MooTools, but for any framework other than Dojo and jQuery.</p>

]]></description><pubDate>Fri, 05 Dec 2008 04:34:37 GMT</pubDate><guid isPermaLink="true">/blog/2008/12/04/sizzle</guid></item><item><title>MooTools 1.2.1 Released</title><link>/blog/2008/10/16/mootools-121-released</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>In keeping with our new pledge to release more often, we&#39;ve been working hard lately to get 1.2.1 ready for release, and we&#39;re finally happy with it.  This release brings a ton of bug fixes, and is a drop in replacement for 1.2.0.  (That&#39;s right, no breaking changes!)</p>

]]></description><pubDate>Thu, 16 Oct 2008 21:02:50 GMT</pubDate><guid isPermaLink="true">/blog/2008/10/16/mootools-121-released</guid></item><item><title>What's going on with MooTools</title><link>/blog/2008/09/23/whats-going-on-with-mootools</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>A very brief article to explain what&#39;s happening in the world of MooTools, and provide users with some links so they can get further information if they feel they need it.</p>

]]></description><pubDate>Tue, 23 Sep 2008 10:44:53 GMT</pubDate><guid isPermaLink="true">/blog/2008/09/23/whats-going-on-with-mootools</guid></item><item><title>Calling All Plugins</title><link>/blog/2008/06/24/calling-all-plugins</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>One of the main things missing since the forums have gone into read only mode is the Your Scripts section.  We realize this and are working to complete our own plugin directory.</p>
<p>We&#39;re trying to assemble a comprehensive list of all our plugins.  As part of this effort, we&#39;re asking all plugin creators to send an email to plugins@mootools.net with the following information:</p>
<ul>
<li>Plugin Name</li>
<li>Plugin URL</li>
<li>Plugin Description (one line)</li>
<li>Plugin author name and link (if applicable)</li>
</ul>
<p>At this time, we&#39;re only interested in collecting data on plugins which are compatible with the 1.2 release.</p>
<p>This is a temporary measure until we get a more interactive system in place.</p>

]]></description><pubDate>Mon, 23 Jun 2008 23:23:46 GMT</pubDate><guid isPermaLink="true">/blog/2008/06/24/calling-all-plugins</guid></item><item><title>MooTools 1.2: It's Official!</title><link>/blog/2008/06/12/mootools-12-its-official</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>I speak for everyone the MooTools team when I tell you that we are extremely happy to announce the <em>official</em> release of MooTools 1.2.  After a year of development and six months in beta, you might call us perfectionists.  But now we&#39;re finally ready to call the 1.2 release complete and stable.  For those of you who have been waiting to make the switch, now would be the perfect time.</p>
<p>Not only has the API been completely revamped, but there have been several significant changes to the site and the way the MooTools community interacts.</p>

]]></description><pubDate>Thu, 12 Jun 2008 17:35:51 GMT</pubDate><guid isPermaLink="true">/blog/2008/06/12/mootools-12-its-official</guid></item><item><title>Snippely!</title><link>/blog/2008/03/15/snippely</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p><img style="float:left; margin-right:10px; margin-bottom:10px;" src="/snippely.png" alt="" /></p>
<p>With the initial release of <a href="http://www.adobe.com/products/air/" alt="Adobe AIR">Adobe AIR</a>, a lot of web developers (myself included) are starting to get excited about developing rich web applications that run natively on the desktop across platforms.  We&#39;ve already seen several great AIR apps popping up all over the Internet, and thought we&#39;d try our hand at creating one of our own.</p>
<p>Snippely was created by myself, Tom Occhino, and Valerio Proietti as our first attempt at creating a robust and useful AIR application.</p>
<div style="clear:both;"> </div>

]]></description><pubDate>Sat, 15 Mar 2008 17:52:51 GMT</pubDate><guid isPermaLink="true">/blog/2008/03/15/snippely</guid></item><item><title>What's New in 1.2: Swiff</title><link>/blog/2008/02/12/whats-new-in-12-swiff</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
features
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Today we&#39;re going to talk about Swiff, which lets you combine Flash and JavaScript to do things MooTools can&#39;t do on its own.</p>

]]></description><pubDate>Tue, 12 Feb 2008 14:17:09 GMT</pubDate><guid isPermaLink="true">/blog/2008/02/12/whats-new-in-12-swiff</guid></item><item><title>MooTools Classes: How to use them</title><link>/blog/2008/02/05/mootools-classes-how-to-use-them</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>A very entry-level article: if you think you can beat MooTools Hero in expert mode, feel free to totally skip this.</p>

]]></description><pubDate>Tue, 05 Feb 2008 17:26:44 GMT</pubDate><guid isPermaLink="true">/blog/2008/02/05/mootools-classes-how-to-use-them</guid></item><item><title>What's New in 1.2: Element Storage</title><link>/blog/2008/01/22/whats-new-in-12-element-storage</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
features
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>Another new feature that&#39;s been built into the latest version of MooTools is the Element Storage.  This article describes the usage of this great new feature, as well as why it was developed, and how it can be used to keep your applications organized and efficient.</p>

]]></description><pubDate>Tue, 22 Jan 2008 17:13:04 GMT</pubDate><guid isPermaLink="true">/blog/2008/01/22/whats-new-in-12-element-storage</guid></item><item><title>MooTools 1.2 beta 2</title><link>/blog/2008/01/16/mootools-12-beta-2</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Its been almost 2 months since the first 1.2 beta. Bugs were fixed, features were improved, and here it comes: the second beta.</p>
<p>The first big feature we&#39;ve been working on for 1.2 is Documentation. </p>
<p>1.2 Documentation is in fact almost 5 times more detailed than it was in version 1. Every class option has now its description, every method has a complete list of arguments along with description, type, and now <strong>every functionality comes with a code example</strong> -- sometimes more than one. If you want to see it for yourself, here is the <a href="http://docs12b.mootools.net/" alt="temporary link for the 1.2 beta documentation">temporary link for the 1.2 beta documentation</a>.</p>
<p>A lot of the new 1.2 features have now been refined. An example that I&#39;d like to share with you now is the Element Accessors feature. This is completely new for 1.2, aimed at making it easier working with elements and their attributes, properties or &quot;special attributes&quot;. <a href="http://blog.mootools.net/2008/1/16/mootools-1-2-beta-2" alt="Continue reading for 1.2 code examples">Continue reading for 1.2 code examples</a>.</p>

]]></description><pubDate>Wed, 16 Jan 2008 19:48:08 GMT</pubDate><guid isPermaLink="true">/blog/2008/01/16/mootools-12-beta-2</guid></item><item><title>MooTools 1.2 beta 1</title><link>/blog/2007/11/14/mootools-12-beta-1</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>The first beta for MooTools 1.2 is finally here!</p>
<p>After <strong>months</strong> in the making, we can confidently say that MooTools 1.2 is now feature complete.  However, there are still some bugs left to squash.</p>
<p>Head over to <a href="/download/docs/null/tags/1-2b1" alt="MooTools download page">MooTools download page</a> to start playing with it right away.</p>

]]></description><pubDate>Wed, 14 Nov 2007 01:13:12 GMT</pubDate><guid isPermaLink="true">/blog/2007/11/14/mootools-12-beta-1</guid></item><item><title>MooTools Foundations: Natives and Elements</title><link>/blog/2007/10/31/mootools-foundations-natives-and-elements</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
features
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>We haven&#39;t had this blog for very long, and talking to many users recently, I became aware of the fact that many people just don&#39;t understand how powerful MooTools actually is.  The purpose of this series of articles is to shed a little light on some of the functionality provided by MooTools that many users might be missing.  I think maybe it&#39;s time we got everyone caught up to speed.  First topic... Natives and Elements!</p>

]]></description><pubDate>Wed, 31 Oct 2007 07:00:20 GMT</pubDate><guid isPermaLink="true">/blog/2007/10/31/mootools-foundations-natives-and-elements</guid></item><item><title>MooTools  + AIR = Love</title><link>/blog/2007/10/26/mootools-air-love</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>Today I found a nice article on <a href="http://coderseye.com/2007/mootools-beats-jquery-and-ext-for-air.html" alt="coderseye.com">coderseye.com</a>:</p>
<blockquote>
<p>I spent a half hour tinkering around in Aptana, downloading MooTools 1.1, and setting up a few tests. The result is extremely pleasing. Not only is MooTools way better and easier to use than I remember, but it works out of the box with AIR.</p>
</blockquote>
<p>That&#39;s <strong>Very</strong> nice to know!</p>
<p>I personally haven&#39;t yet tried MooTools in AIR extensively (i only did a few basic tests) but I&#39;m definitely looking forward to creating something in the very near future. Maybe a downloader app? We&#39;ll see!</p>

]]></description><pubDate>Fri, 26 Oct 2007 18:14:55 GMT</pubDate><guid isPermaLink="true">/blog/2007/10/26/mootools-air-love</guid></item><item><title>What's New in 1.2: The Best Fx, Now Even Better</title><link>/blog/2007/10/23/whats-new-in-12-the-best-fx-now-even-better</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
features
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>MooTools has always been known for having some of the most fluid and impressive effects around.  In 1.2 we’ve introduced some exciting new enhancements that make them even more efficient, powerful, flexible, and easy to use.  Here are the changes made to the Fx Classes to take note of...</p>

]]></description><pubDate>Tue, 23 Oct 2007 18:32:01 GMT</pubDate><guid isPermaLink="true">/blog/2007/10/23/whats-new-in-12-the-best-fx-now-even-better</guid></item><item><title>What's New in 1.2: Behaviour Driven Development</title><link>/blog/2007/10/20/whats-new-in-12-behaviour-driven-developmentyou-know-weve-been-telling-you-that-mootools-is-reliable-but-how-can-you-can-be-sure-that-it-will-work-for-your-project-without-just-taking-our-word</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
features
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>You know we&#39;ve been telling you that MooTools is reliable, but how can you can be sure that it will work for your project without just taking our word for it?  </p>
<p>Check the Spec folder out from the repository and its self-contained testing suite will prove it.  Show your boss, show your coworkers, and let them know that MooTools is professional grade.</p>

]]></description><pubDate>Sat, 20 Oct 2007 08:18:03 GMT</pubDate><guid isPermaLink="true">/blog/2007/10/20/whats-new-in-12-behaviour-driven-developmentyou-know-weve-been-telling-you-that-mootools-is-reliable-but-how-can-you-can-be-sure-that-it-will-work-for-your-project-without-just-taking-our-word</guid></item><item><title>What's New in 1.2: The Hash</title><link>/blog/2007/10/08/whats-new-in-12-the-hash</link><dc:creator><![CDATA[
Tom Occhino
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
features
]]></category><category><![CDATA[
news
]]></category><description><![CDATA[
<p>In recent development of MooTools, we&#39;ve incorporated into the core a plugin that was once pushed under the table and neglected.  The Hash is a powerful new way to extend objects just like you&#39;ve always wanted...</p>

]]></description><pubDate>Mon, 08 Oct 2007 01:22:21 GMT</pubDate><guid isPermaLink="true">/blog/2007/10/08/whats-new-in-12-the-hash</guid></item><item><title>Help Us Help You</title><link>/blog/2007/06/18/help-us-help-you</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>While we love to help everyone who comes to us for support, sometimes there’s a breakdown in communication.</p>
<p>To clear up some of these issues, I’ve written this article about how to get the friendliest response possible from the community.</p>

]]></description><pubDate>Mon, 18 Jun 2007 13:29:54 GMT</pubDate><guid isPermaLink="true">/blog/2007/06/18/help-us-help-you</guid></item><item><title>Selectors on fire: a tale of pseudoselectors</title><link>/blog/2007/06/11/selectors-on-fire-a-tale-of-pseudoselectors</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p><img src="http://blog.mootools.net/assets/2007/6/11/slickspeed.png" alt="slickspeed">
During the last few days, we&#39;ve added some nifty CSS3 selectors to the trunk. Continue reading to know what this is all about, or try <a href="/slickspeed/docs/null/slickspeed" alt="SlickSpeed">SlickSpeed</a> now!</p>
<p>UPDATE: SlickSpeed can now be <a href="http://code.google.com/p/slickspeed/source" alt="downloaded from googlecode">downloaded from googlecode</a>.</p>

]]></description><pubDate>Mon, 11 Jun 2007 19:02:38 GMT</pubDate><guid isPermaLink="true">/blog/2007/06/11/selectors-on-fire-a-tale-of-pseudoselectors</guid></item><item><title>Help! I Don't Know JavaScript!</title><link>/blog/2007/06/05/help-i-dont-know-javascript</link><dc:creator><![CDATA[
Michelle Steigerwalt
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
tips
]]></category><description><![CDATA[
<p>For all the interested MooToolers in the making out there, I have compiled a list of resources which should give you everything you need to know to get started in client-side development.</p>

]]></description><pubDate>Tue, 05 Jun 2007 16:14:25 GMT</pubDate><guid isPermaLink="true">/blog/2007/06/05/help-i-dont-know-javascript</guid></item><item><title>MooTools version 1.11 released</title><link>/blog/2007/06/04/mootools-version-111-released</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><category><![CDATA[
news
]]></category><category><![CDATA[
releases
]]></category><description><![CDATA[
<p>Today we released MooTools version 1.11.</p>
<p>In this release we fixed a bunch of memory leaks issues, as well as some minor bugs around.</p>
<p>Other than some maintenance, we added the getText and setText Element methods, to help filling HTML Elements, Style tags and Script tags with text, and we added more details to <a href="http://docs.mootools.net/" alt="the documentation">the documentation</a>.</p>
<p>This is a recommended update for all of you using MooTools 1.1.</p>
<p>If you want to, you can see <a href="http://dev.mootools.net/wiki/changelog" alt="the changelog in details">the changelog in details</a>.</p>
<p>So, go ahead and <a href="/download/docs/null/download" alt="give it a try">give it a try</a>!</p>

]]></description><pubDate>Mon, 04 Jun 2007 09:30:14 GMT</pubDate><guid isPermaLink="true">/blog/2007/06/04/mootools-version-111-released</guid></item><item><title>And finally, the blog arrived</title><link>/blog/2007/05/29/and-finally-the-blog-arrived</link><dc:creator><![CDATA[
Valerio Proietti
]]></dc:creator><category><![CDATA[
all
]]></category><description><![CDATA[
<p>After more than a year of continuous and dedicated development, <a href="/developers/docs/null/developers" alt="we">we</a> decided it was time to launch a blog to keep you in the loop.</p>
<p>Here we&#39;re gonna post about the latest moo trends, the latest breaking changes, the latest plugins that see the light everyday.</p>
<p>Hoping its enough for an introductory post, I&#39;ll leave you at better things, for now.</p>
<p>Cheers</p>
<p>Valerio</p>

]]></description><pubDate>Tue, 29 May 2007 01:22:44 GMT</pubDate><guid isPermaLink="true">/blog/2007/05/29/and-finally-the-blog-arrived</guid></item></channel></rss>