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

<channel>
	<title>Ryan Rampersad &#187; MooTools</title>
	<atom:link href="http://blog.ryanrampersad.com/category/mootools/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ryanrampersad.com</link>
	<description>Thoughts, Ideas &#38; Opinions</description>
	<lastBuildDate>Thu, 17 May 2012 17:11:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-beta4-20825</generator>
		<item>
		<title>★ My First MooTools Presentation</title>
		<link>http://blog.ryanrampersad.com/2010/08/25/my-first-mootools-presentation/</link>
		<comments>http://blog.ryanrampersad.com/2010/08/25/my-first-mootools-presentation/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 18:12:19 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MooTools]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=2178</guid>
		<description><![CDATA[On Thursday, May 27th, I gave my very first MooTools presentation to an eagerly awaiting AP Computer Science class. The presentation was in three parts, the first a general overview of javascript itself, the second a micro-guide to MooTools glowing finesse with elements, events and effects, and finally a complete section on MooTools classes to [...]]]></description>
			<content:encoded><![CDATA[<p>On Thursday, May 27<sup>th</sup>, I gave my very first MooTools presentation to an eagerly awaiting AP Computer Science class. The presentation was in three parts, the first a general overview of javascript itself, the second a micro-guide to MooTools glowing finesse with elements, events and effects, and finally a complete section on MooTools classes to compared to those in Java.</p>
<p><a href="http://blog.ryanrampersad.com/wp-content/uploads/2010/07/mootools-first-slide.png"><img src="http://blog.ryanrampersad.com/wp-content/uploads/2010/07/mootools-first-slide.png" alt="An introduction slide for my first mootools presentation" title="First Slide" width="580" height="385" class="aligncenter size-full wp-image-2348" /></a></p>
<p>The <a href="http://mootools.net/">MooTools website</a>, the <a href="http://mootorial.com/wiki/">MooTorial</a> and the <a href="http://walkthrough.ifupdown.com/">mooWalkthrough</a> all made appearances, giving extra credit to the third as my own project.</p>
<p>The presentation in all was 54 slides and lasted about 52 minutes with a Q&amp;A segment. The content in the presentation was in fact enough to get the class to work on a not-too-rudimentary project involving MooTools the next day. </p>
<h2>The Presentation</h2>
<div class="aligncenter" style="width:425px" id="__ss_5050993"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/ryanrampersad/ap-computer-science-mootools-presentation" title="AP Computer Science MooTools Presentation">AP Computer Science MooTools Presentation</a></strong><object id="__sse5050993" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mootools-100825003039-phpapp02&#038;stripped_title=ap-computer-science-mootools-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5050993" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=mootools-100825003039-phpapp02&#038;stripped_title=ap-computer-science-mootools-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/ryanrampersad">Ryan Rampersad</a>.</div>
</div>
<p>You can also download the <a href="http://blog.ryanrampersad.com/wp-content/uploads/2010/07/MooTools.pdf">PDF</a> or the <a href="http://blog.ryanrampersad.com/wp-content/uploads/2010/07/MooTools.pptx">PPTX</a>. <em>(If I wasn&#8217;t poor, I would have used Keynote.)</em></p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2010/08/25/my-first-mootools-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>★ missing argument 1 when calling function mutator.call</title>
		<link>http://blog.ryanrampersad.com/2010/06/25/missing-argument-1-when-calling-function-mutator-call/</link>
		<comments>http://blog.ryanrampersad.com/2010/06/25/missing-argument-1-when-calling-function-mutator-call/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 08:20:37 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[Errors]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MooTools]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=2241</guid>
		<description><![CDATA[I&#8217;ve been doing some hefty MooTools development lately, and I ran into a odd ball error in that endeavor. I put it aside for a while, ignoring it while I worked on other code. Eventuallly, I had to face it though, so here are my remarks in that journey. First, the error in question is [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing some hefty <a href="http://mootools.net">MooTools</a> development lately, and I ran into a odd ball error in that endeavor. I put it aside for a while, ignoring it while I worked on other code. Eventuallly, I had to face it though, so here are my remarks in that journey.</p>
<p>First, the error in question is formally given in Firefox/Firebug as follows:</p>
<blockquote><p>
missing argument 1 when calling function mutator.call<br />
value = mutator.call(this, value);<br />
mootoo&#8230;e-nc.js (line 1226)
</p></blockquote>
<p><span id="more-2241"></span></p>
<p>I&#8217;m not a MooTools source code expert but I&#8217;ve read through it, so I remembered that that mutator business had something to do with class creation. That didn&#8217;t help much. I brought this to the attention of those in the IRC channel, and while most of the people were sleeping or busy, I got one helpful hand.</p>
<blockquote title="from the mootools irc channel on freenode"><p>
 15:47:08 | &lt;d_mitar&gt; odd<br />
 15:47:11 | &lt;d_mitar&gt; works in chrome<br />
 15:47:49 | &lt;ryanmr&gt; I didn&#8217;t realize :) it didn&#8217;t used to work there either<br />
 15:48:51 | &lt;d_mitar&gt; if you set a breakpoint on the mutator call<br />
 15:49:01 | &lt;d_mitar&gt; and are very patient<br />
 15:49:08 | &lt;d_mitar&gt; you can trace it :D<br />
 15:49:24 | &lt;ryanmr&gt; I traced it back to Cookie but I never used Cookie :D<br />
 15:49:48 | &lt;d_mitar&gt; does mcl use it? hrm<br />
 15:49:54 | &lt;d_mitar&gt; shouldnt do<br />
 15:50:05 | &lt;ryanmr&gt; nope<br />
 15:51:05 | &lt;ryanmr&gt; when I step through the stack, I trace it back to the dispose method of cookie.
</p></blockquote>
<p>I certainly did attempt to add a break point to the mutator line, but it didn&#8217;t get me far. I ended up at cookie every time, so there again, I was stuck. So <a href="http://twitter.com/ryanmr/statuses/16956427722">I asked on twitter</a> too, but no luck there.</p>
<p>After working hard to patch some holes in my basement&#8217;s concrete, I came back to this conundrum. I decided to look over my code, and comment each class out as nessesary. That took quite a while, but I narrowed it down to an Observer class. It observes whatever items you attach to it, and then adds some events to reorder the items when certain conditions are met. If I commented out that specific class, the <em>missing argument 1 when calling function mutator.call</em> error would go away. I then tried to comment out all of the actual method bodies to see if I had some to do with it, but it appeared that wasn&#8217;t the case.</p>
<p>So then I went to <a href="http://jsfiddle.net/">jsfiddle </a>to write up some cleaner tests. The <a href="http://jsfiddle.net/5Z5mM/1/">first test was an almost exact copy</a> of my project code, with a few minor (non-error causing) bits of logic absent. Once I hit run after writing it up, I got the error! So my enviroment wasn&#8217;t causing the problem either.</p>
<p>The<a href="http://jsfiddle.net/5Z5mM/2/"> second version was error free</a>. I suspected reserved method names, similar to the way <code>initialize</code> is reserved for MooTools, had something to do with it. So I changed all of the method names, except <code>initialize</code> to end with an <code>XXX</code>. That clearly did something to solve the problem, as in Firefox, it was no longer showing that error at all. To narrow down which method was reserved or forbidden, I added the X&#8217;s to each one at a time. It appeared then that <code>watch</code> could not be a method without trouble.</p>
<p>So I wanted an even cleaner example, without all that classy cruft. So I ran the following two lines of code in the Firebug console:</p>
<blockquote>
<pre>
var c = new Class({initialize: function(){}});
var x = new c();
console.log(x.watch);
</pre>
</blockquote>
<p>That of course, confirm my suspicions. Firebug claimed that <code>watch()</code> was indeed a method &#8211; a native method. I <a href="http://twitter.com/ryanmr/statuses/16997250146">tweeted about this with a screenshot</a>. I ran the same code in Chrome (since the project code <em>was</em> working there, I wasn&#8217;t worried) and I <a href="http://twitter.com/ryanmr/statuses/16997539061">tweeted another screenshot with the results</a> &#8211; no problem.</p>
<p>It occured to me then to <a href="http://www.google.com/search?q=Firefox+watch+method">google <em>firefox watch method</em></a>. I made my way to the <a href="https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Object/watch">MDC&#8217;s watch page</a>. It&#8217;s a non-standard apparently and the purpose is:</p>
<blockquote><p>
Watches for a property to be assigned a value and runs a function when that occurs.
</p></blockquote>
<p>I wouldn&#8217;t have expected that from some random method called watch. </p>
<p>The solution was now clear, I needed to rename my watch method. That is the fix. To fix the <strong>missing argument 1 when calling function mutator.call</strong> error when using MooTools in Firefox, do not use the <code>watch</code> method in your code. Instead, try <a href="http://thesaurus.com/browse/watch">a synonym</a> such as: observe, look, peer, listen, view or stare.</p>
<p>That was my wonderful adventure for the 24th and 25th of June, 2010. Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2010/06/25/missing-argument-1-when-calling-function-mutator-call/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>★ Queue Ajax Requests in Mootools</title>
		<link>http://blog.ryanrampersad.com/2010/02/25/queue-ajax-requests-in-mootools/</link>
		<comments>http://blog.ryanrampersad.com/2010/02/25/queue-ajax-requests-in-mootools/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 23:52:56 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[MooTools]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1978</guid>
		<description><![CDATA[On a recent project, I used ajax to render a full cell of a table upon clicking it. I found that without some kind of queue, my clients would click on a bunch to expand them, but only the first would render. Mootools offers a plugin in mootools more called Request.Queue, but that wasn&#8217;t what [...]]]></description>
			<content:encoded><![CDATA[<p>On a recent project, I used ajax to render a full cell of a table upon clicking it. I found that without some kind of queue, my clients would click on a bunch to expand them, but only the first would render. Mootools offers a plugin in <a href="http://mootools.net/more">mootools more</a> <a href="http://mootools.net/docs/more/Request/Request.Queue">called <code>Request.Queue</code></a>, but that wasn&#8217;t what I was looking for, since there was only a single Request object involved, not multiple.</p>
<p>I was reading <a href="http://mootools.net/docs/core/Request/Request">the documentation of Request</a> to see if I missed something, because I thought this was core functionality. Apparently, there is something built into mootools more that does just that, it chains requests, literally forming a queue.</p>
<p>Straight from the options of <code>Request</code>:</p>
<blockquote><p>&#8216;chain&#8217; &#8211; Any calls made to start while the request is running will be chained up, and will take place as soon as the current request has finished, one after another.</p></blockquote>
<p>Adding that option to Request worked perfectly, so I was able to click on a bunch of table cells and let them render freely.</p>
<p>I think that there should be a note in <code>Request.Queue</code> that there is already functionality for repeated requests with the same <code>Request</code> object built into the core.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2010/02/25/queue-ajax-requests-in-mootools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>★ Testing Events in MooTools Classes</title>
		<link>http://blog.ryanrampersad.com/2010/01/13/testing-events-in-mootools-classes/</link>
		<comments>http://blog.ryanrampersad.com/2010/01/13/testing-events-in-mootools-classes/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 23:45:29 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[MooTools]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1916</guid>
		<description><![CDATA[I was adding some much needed events to my GoodCarousel plugin for MooTools recently. I added what I thought others might need, startUp, beforeSlide, afterSlide, end, startOver, mouseEnter, mouseLeave But since I&#8217;m lazy, I didn&#8217;t want to explicitly write a function for each of those events and then put them in options argument. I&#8217;m just [...]]]></description>
			<content:encoded><![CDATA[<p>I was adding some much needed <em>events</em> to my <a href="http://github.com/ryanmr/GoodCarousel">GoodCarousel</a> plugin for MooTools recently. I added what I thought others might need,</p>
<blockquote><p>startUp, beforeSlide, afterSlide, end, startOver, mouseEnter, mouseLeave</p></blockquote>
<p>But since I&#8217;m lazy, I didn&#8217;t want to explicitly write a function for each of those events and then put them in options argument. I&#8217;m just too lazy. So here&#8217;s what I did instead.</p>
<pre class="brush: jscript; title: ; notranslate">
		gc = new GoodCarousel(&quot;good-carousel&quot;, {width: 495, height: 300, loops: 1});
		var events = [&quot;startUp&quot;, &quot;beforeSlide&quot;, &quot;afterSlide&quot;, &quot;end&quot;, &quot;startOver&quot;, &quot;mouseEnter&quot;, &quot;mouseLeave&quot;];
		var fn = function(event) {
			console.log(event);
		};
		events.each(function(evt, i){
			gc.addEvent(evt, fn.pass(evt));
		});
</pre>
<p>I made an array of event names and a function that simply accepts an argument and logs the argument to the console. The next part is where the events are actually added. In the <code>each</code>, <code>gc.addEvent</code> is used to add each event. The <code>fn.pass(evt)</code> allows me to pass the <em>event</em> name to the function I&#8217;m calling so that it can be logged.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2010/01/13/testing-events-in-mootools-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>★ MooTools: takeOut and putBack methods</title>
		<link>http://blog.ryanrampersad.com/2010/01/07/mootools-takeout-and-putback-methods/</link>
		<comments>http://blog.ryanrampersad.com/2010/01/07/mootools-takeout-and-putback-methods/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 23:31:37 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[MooTools]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1903</guid>
		<description><![CDATA[Sometimes you don&#8217;t want to replace an element with another one, you just want a placeholder, so you can put it back later. I wrote takeOut and putBack to help out with that. As you can see, I have the two methods. takeOut has an optional argument, elementType. You can specify a different tag-name (of [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes you don&#8217;t want to replace an element with another one, you just want a placeholder, so you can put it back later. I wrote <code>takeOut</code> and <code>putBack</code> to help out with that.</p>
<pre class="brush: jscript; title: ; notranslate">
Element.implement({
    
    takeOut: function(elementType) {
        var elementType = ($type(elementType) == &quot;string&quot; ?
                           elementType: &quot;span&quot;);
        
        this.placeholder = ($defined(this.placeholder) ?
                            this.placeholder : new Element(elementType).setStyle(&quot;display&quot;, &quot;none&quot;).addClass(&quot;takenOut_&quot;+this.get(&quot;id&quot;)));
        
        this.placeholder.inject(this, &quot;before&quot;);
        return this.dispose();
    },
    
    putBack: function() {
        if ( !$defined(this.placeholder) ) {return false;}
        this.inject(this.placeholder, &quot;after&quot;);
        this.placeholder = this.placeholder.dispose();
    }
});
</pre>
<p>As you can see, I have the two methods. <code>takeOut</code> has an optional argument, elementType. You can specify a different tag-name (of an element) to be the placeholder of the original element after you take it out. It&#8217;s quite handy when you normally take out <code>div</code> tags but need to work on a tr of a table which don&#8217;t allow child <code>span</code> tags. A class is also added on too the placeholder just so you can see what it is supposed to be.</p>
<p><code>putBack</code> isn&#8217;t so exciting, it just replaces the <code>span</code> with the original element. No big deal.<br />
But take a look at the value of this, it&#8217;s not simply hiding an element, it&#8217;s completely removing it and <em>still</em> knowing where to put it if you need too.</p>
<p><iframe style="width: 100%; height: 180px; border: 0;" src="http://mooshell.net/8NgRB/5/embedded/"></iframe></p>
<div class="note">It is annoying how SyntaxHighligher Evolved can&#8217;t display that code as well as mooshell can.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2010/01/07/mootools-takeout-and-putback-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>★ GoodCarousel &#8211; A Carousel with Mootools</title>
		<link>http://blog.ryanrampersad.com/2009/10/24/goodcarousel-a-carousel-with-mootools/</link>
		<comments>http://blog.ryanrampersad.com/2009/10/24/goodcarousel-a-carousel-with-mootools/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 00:30:27 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MooTools]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1487</guid>
		<description><![CDATA[Hey there. I&#8217;m trying to get this plugin into the Mootools Forge but I&#8217;ve been having a hard time getting it to work. So in the mean time, checkout the repository on github. GoodCarousel is a plugin made with Mootools 1.2.3. It is made to slide over to, not fade to, the next slide and [...]]]></description>
			<content:encoded><![CDATA[<div class="note">Hey there. I&#8217;m trying to get this plugin into the <a href="http://mootools.net/forge/">Mootools Forge</a> but I&#8217;ve been having a hard time getting it to work. So in the mean time, checkout the repository on <a href="http://github.com/ryanmr/GoodCarousel">github</a>.</div>
<p>GoodCarousel is a plugin made with Mootools 1.2.3. It is made to slide over to, not fade to, the next slide and uses inline elements to draw data for the slide titles, descriptions and images.</p>
<div id="attachment_1489" class="wp-caption alignright" style="width: 310px"><a href="http://ifupdown.com/js/good-carousel/?f=blog"><img src="http://blog.ryanrampersad.com/wp-content/uploads/2009/08/good-carousel-300x210.png" alt="GoodCarousel Demo" title="GoodCarousel Demo" width="300" height="210" class="size-medium wp-image-1489" /></a><p class="wp-caption-text">GoodCarousel Demo</p></div>
<h3>What it does</h3>
<p>It creates a carousel like those found on <a href="http://www.cnet.com/">cNet</a> but instead of fading, it will slide over. The carousel draws its data from inline elements: h3, p and img within in a div with a specific class. This allows you to use the carousel but also keep the data indexable.</p>
<h3>Usage</h3>
<p>You can see a fully working <a href="http://ifupdown.com/js/good-carousel/">demo page here</a>. There are a few steps you&#8217;ll need to follow in order to get it to work.</p>
<ol>
<li>You need to determine the space you have for your slides. The space cannot change so fluid layouts probably won&#8217;t work. The demo page uses 495&#215;300 pixel images for slides because that is the space alloted to it by the layout. I found the space by using the layout tab in firebug.</li>
<li>When you make your images, keep in mind that the title and description text will be displayed on the left side of the image so putting in the right-top corner is probably the best bet. Experiment with it.</li>
<li>Once you have your slides, you can easily build your html structure so GoodCarousel can draw data from it.
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;carousel-data&quot;&gt;
&lt;h3&gt;Slide Title&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://what.the.slide.links.to/&quot;&gt;Slide description or subtext&lt;/a&gt;&lt;/p&gt;
&lt;img src=&quot;path/to/slide-image.png&quot; title=&quot;image title&quot; rel=&quot;rel - for lightbox support&quot; /&gt;
&lt;/div&gt;
</pre>
<p>Each div with carousel data will make a slide in the carousel.
</li>
<li>The carousel nav is automatically sized based on options you set when initialize GoodCarousel.
<pre class="brush: jscript; title: ; notranslate">
	window.addEvent(&quot;domready&quot;, function() {
		gc = new GoodCarousel(&quot;good-carousel&quot;, {width: 495, height: 300});
	});
</pre>
<p>Make sure you set the width and height you used for your images. GoodCarousel will take of how big to make the container and how small each nav should be.
</li>
</ol>
<p>You have to include the <a href="http://blog.ryanrampersad.com/wp-content/uploads/2009/08/good-carousel-1.1.js">GoodCorners javascript</a> file and css file in the head of your page, as always.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;link rel=&quot;stylesheet&quot; href=&quot;path/to/good-carousel.css&quot; type=&quot;text/css&quot; /&gt;
&lt;script src=&quot;path/to/mootools-1.2.3.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;path/to/good-carousel.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
	window.addEvent(&quot;domready&quot;, function() {
		var gc = new GoodCarousel(&quot;good-carousel&quot;, {width: 495, height: 300});
	});
&lt;/script&gt;
</pre>
<p>Remember to set the width and height that your slides will be.</p>
<h3>Downloads</h3>
<p>You can pick up GoodCarousel with the stylesheet, transparent background and double arrows on <a href="http://ifupdown.com/js/good-carousel/">the demo page</a> as a zip. The zip contains a compressed and uncompressed version for both the css and javascript. You can use the demo page for setup reference.</p>
<h3>Notes</h3>
<p>You may need to edit the stylesheet that accompanies GoodCarousel. You can easily customize the height of the nav, text color, hover color and so on by editing the uncompressed good-carousel.css file.</p>
<div class="note">This post was written for GoodCarousel 1.1 but will probably make sense with subsequent versions. It will also work just fine with Mootools 1.2.4.</div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2009/10/24/goodcarousel-a-carousel-with-mootools/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>★ mooWalkthrough Feedback for the Future</title>
		<link>http://blog.ryanrampersad.com/2009/09/04/moowalkthrough-feedback-for-the-future/</link>
		<comments>http://blog.ryanrampersad.com/2009/09/04/moowalkthrough-feedback-for-the-future/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 23:28:16 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[MooTools]]></category>
		<category><![CDATA[walkthrough]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1499</guid>
		<description><![CDATA[The mooWalkthrough has been around for a couple years now. I know that people read it but I don&#8217;t see or hear much feedback such as likes and dislikes about the content, pacing, structure and so on. Every school year I take a couple weeks and rewrite some of it. Last last year I bit [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://walkthrough.ifupdown.com/">mooWalkthrough</a> has been around for a couple years now. I know <a href="http://blog.ryanrampersad.com/wp-content/uploads/2009/09/moowalkthrough-pageviews.png">that people read it</a> but I don&#8217;t see or hear much feedback such as likes and dislikes about the content, pacing, structure and so on. <div id="attachment_1507" class="wp-caption alignright" style="width: 250px"><a href="http://blog.ryanrampersad.com/wp-content/uploads/2009/09/mooWalkthrough618.gif"><img src="http://blog.ryanrampersad.com/wp-content/uploads/2009/09/mooWalkthrough618.gif" alt="mooWalkthrough" title="mooWalkthrough" width="240" height="50" class="size-full wp-image-1507" /></a><p class="wp-caption-text">mooWalkthrough</p></div></p>
<p>Every school year I take a couple weeks and rewrite some of it. Last last year I bit the bullet; I restructured everything and made the <a href="http://walkthrough.ifupdown.com/1.2.x/home">new mooWalkthrough 1.2.x edition</a>, which we all know and love today. I&#8217;ll have ample time this school year to try to make it even better. Right now though, there aren&#8217;t any solid plans. The mooWalkthrough is supposed to be a guide so people can begin to play with Mootools in a hand-in-hand kind of way, or at least, that&#8217;s the idea I came up with. So I&#8217;d like some feedback and some suggestions about the future of the <a href="http://walkthrough.ifupdown.com/">mooWalkthrough</a>.</p>
<ul>
<li>The structure of the content &#8211; The introduction of Mootools, General Knowledge, Elements, Events and Effects, is this good enough as an introduction to Mootools?</li>
<li>Future Content &#8211; Perhaps another branch that introduces Mootools-more?</li>
<li>Demos and Sample Code &#8211; There are new solutions such as <a href="http://jsbin.com/">jsbin</a> and <a href="http://mooshell.net/">MooShell</a> that can solve the demo part but, do the current code samples look fine?</li>
<li>Wiki-Factor &#8211; The mooWalkthrough is basically a big installation of <a href="http://www.dokuwiki.org/dokuwiki">dokuwiki</a>. Anyone want to help write some pages?</li>
<li>Other Stuff &#8211; Anything you can think of to make it better? Other thoughts, comments?</li>
</ul>
<p>Just leave a comment with your feedback or suggestions.</p>
<p><em>Thanks!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2009/09/04/moowalkthrough-feedback-for-the-future/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>★ GoodCorners &#8211; Rounded Corners with Mootools</title>
		<link>http://blog.ryanrampersad.com/2009/08/26/goodcorners-rounded-corners-with-mootools/</link>
		<comments>http://blog.ryanrampersad.com/2009/08/26/goodcorners-rounded-corners-with-mootools/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 00:15:16 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MooTools]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1466</guid>
		<description><![CDATA[I admit that this plugin is really lame. Just use border-radius and stop supporting old versions of Internet Explorer. Sorry to waste your time. GoodCorners is a tiny Mootools plugin that can apply the CSS3 border-radius to elements using a unified syntax so you can have beautiful rounded corners. Usage GoodCorners can be used in [...]]]></description>
			<content:encoded><![CDATA[<div class="note">I admit that this <em>plugin</em> is really lame. Just use <code>border-radius</code> and stop supporting old versions of Internet Explorer. Sorry to waste your time.</div>
<div id="attachment_1471" class="wp-caption alignright" style="width: 310px"><a href="http://blog.ryanrampersad.com/wp-content/uploads/2009/08/good-corners.png"><img class="size-medium wp-image-1471" title="Good Corner Example" src="http://blog.ryanrampersad.com/wp-content/uploads/2009/08/good-corners-300x203.png" alt="Good Corner Example" width="300" height="203" /></a><p class="wp-caption-text">Good Corner Example</p></div>
<p>GoodCorners is a tiny Mootools plugin that can apply the CSS3 border-radius to elements using a unified syntax so you can have beautiful rounded corners.</p>
<h3>Usage</h3>
<p>GoodCorners can be used in a couple different ways. Both parameters are optional. Omitting both will automatically round any elements with the <em>gc</em> class already on them. If you don&#8217;t supply a specific border radius, the default is <em>10px</em>. Here is the GoodCorners syntax:</p>
<pre class="brush: jscript; title: ; notranslate">
GoodCorners.round( [selector] [, radius settings]);
/*
	Radius settings:
		radius
		topleft
		topright
		bottomleft
		bottomright
*/

// Examples:
// To round images in a gallery
GoodCorners.round(&quot;#gallery img&quot;);

// To do some extreme rounding
GoodCorners.round(&quot;#extreme&quot;, {radius: &quot;100px&quot;});
</pre>
<h3>Notes</h3>
<p>In all cases, you will need to define a border on the elements you wish to style with typical stylesheets.</p>
<pre class="brush: css; title: ; notranslate">
/*for default use*/
.gc {
  border: 10px solid black;
}

/*assuming you have a white background, easy to change*/
#gallery img {
 border: 10px solid #000;
}
</pre>
<p>GoodCorners doesn&#8217;t support KHTML out of the box because Mootools doesn&#8217;t provide a build in method for detection, that I know of.</p>
<h3>What it works in</h3>
<p>GoodCorners works in browsers that supports the border radius property in CSS3 or least a proprietary variant of it. Browsers that support this property are: Firefox 3.5, Safari 4 and Chrome 2.</p>
<p>GoodCorners doesn&#8217;t do anything putting the directives into a stylesheet can&#8217;t do but GoodCorners makes it easy to apply rounded corners with javascript without worrying about those pesky style name variations. There is <a href="http://blog.ryanrampersad.com/wp-content/uploads/2009/08/good-corners-u.js">a full version</a> and <a href="http://blog.ryanrampersad.com/wp-content/uploads/2009/08/good-corners-c.js">a compressed version</a>. Really, the only reason you need GoodCorners is if you want to round elements from javascript.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2009/08/26/goodcorners-rounded-corners-with-mootools/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>★ Randomize an Array with Mootools</title>
		<link>http://blog.ryanrampersad.com/2009/07/15/randomize-an-array-with-mootools/</link>
		<comments>http://blog.ryanrampersad.com/2009/07/15/randomize-an-array-with-mootools/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 00:31:49 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[MooTools]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[unified]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1292</guid>
		<description><![CDATA[Mootools doesn&#8217;t offer a native way to randomize an array but it does offer a way to get a single random element from an array. You can extend Mootools to have an Array.randomize method. It&#8217;s really easy to do. Now you can easily call randomize on an array and you&#8217;ll get a random array out [...]]]></description>
			<content:encoded><![CDATA[<p>Mootools doesn&#8217;t offer a native way to randomize an array but it does offer a way to get a single random element from an array.</p>
<p>You can extend Mootools to have an Array.randomize method. It&#8217;s really easy to do.</p>
<pre class="brush: php; title: ; notranslate">
Array.implement({
	randomize: function() {
		return this.sort(function() {return 0.5 - Math.random();});
	}
});
</pre>
<p>Now you can easily call <em>randomize</em> on an array and you&#8217;ll get a random array out of it. I think this should be added to Array.Extras in the Mootools More library.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2009/07/15/randomize-an-array-with-mootools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>★ Coming Soon: mooWalkthrough 1.2.x</title>
		<link>http://blog.ryanrampersad.com/2009/02/18/coming-soon-moowalkthrough-12x/</link>
		<comments>http://blog.ryanrampersad.com/2009/02/18/coming-soon-moowalkthrough-12x/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 06:37:04 +0000</pubDate>
		<dc:creator>Ryan</dc:creator>
				<category><![CDATA[MooTools]]></category>
		<category><![CDATA[walkthrough]]></category>

		<guid isPermaLink="false">http://blog.ryanrampersad.com/?p=1004</guid>
		<description><![CDATA[Can you believe I left this post alone without a link to the mooWalkthrough? The 1.2.x edition is out right now waiting for you to read it. It&#8217;s practically begging you. I&#8217;ve been working on the next version of the mooWalkthrough, 1.2.x. It works with the 1.2.x version of Mootools. I wrote it this time [...]]]></description>
			<content:encoded><![CDATA[<div class="warning">Can you believe I left this post alone without a link to the <a href="http://walkthrough.ifupdown.com/">mooWalkthrough</a>? The 1.2.x edition is out right now waiting for you to read it. It&#8217;s practically begging you.</div>
<p>I&#8217;ve been working on the next version of the mooWalkthrough, 1.2.x. It works with the 1.2.x version of Mootools.</p>
<p>I wrote it this time to be a lot shorter in terms of words. It shouldn&#8217;t take you more than an hour to read through the basics. That&#8217;s because I don&#8217;t spend time making jokes and filling up the page with long lines of useless junk. Just to give you a perespective on the size of the walkthrough now, the first version of the walkthough was about 40.2kB. The previous version, <em>walkthrough-1.2</em>, was about 43.8kB. The new walkthough comes in at a tiny 31.7kB. At this point in time, it&#8217;s also covering slightly more in terms of functionality.</p>
<p>I wrote the new walkthrough to also accomadate some more complex aspects of mootools, like <em>Request</em>. Is Request really so complex though? It is if you don&#8217;t know the basics. So, I split it up inside the walkthrough. It&#8217;s basically a big experiment. I haven&#8217;t written that part yet, I will soon though. I&#8217;d like to get the basic part up though first. I&#8217;d like to cover a lot of advanced uses of Mootools and of course some of the plugins that come with Mootools. (Of course, tons of plugins will come with Mootools soon via mootools-more, but I mean the original set like Fx.Slide.)</p>
<p>I&#8217;d like to have <strong>any</strong>Ã‚Â feedback you have concerning the mooWalkthrough. I tried to make it not like a tutorial but instead a walkthrough of tools.</p>
<p>So that&#8217;s enough about me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ryanrampersad.com/2009/02/18/coming-soon-moowalkthrough-12x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

