<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Solutoire.com</title>
	
	<link>http://solutoire.com</link>
	<description>Publicing platform</description>
	<pubDate>Sun, 02 Nov 2008 15:48:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/solutoire" type="application/rss+xml" /><feedburner:emailServiceId>616247</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item>
		<title>Delayed Image Preloading Using Mootools</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/440049170/</link>
		<comments>http://solutoire.com/2008/11/02/delayed-image-preloading-usin-mootools/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 15:44:50 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Mootools]]></category>

		<category><![CDATA[image preloading]]></category>

		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://solutoire.com/?p=190</guid>
		<description><![CDATA[
It&#8217;s almost three months ago since my last post! I&#8217;m quite busy at the moment. That&#8217;s why I&#8217;ll just write a quickie on delayed image preloading using Mootools (1.2.1, also might work with 1.2 and 1.1).

Image preloading

Most of the times you&#8217;ll need preloading when there are elements in the DOM that are hidden, but have [...]]]></description>
			<content:encoded><![CDATA[<p>
It&#8217;s almost three months ago since my last post! I&#8217;m quite busy at the moment. That&#8217;s why I&#8217;ll just write a quickie on delayed image preloading using <a href="http://www.mootools.net" title="Mootools Home">Mootools</a> (1.2.1, also might work with 1.2 and 1.1).
</p>
<h2>Image preloading</h2>
<p>
Most of the times you&#8217;ll need preloading when there are elements in the DOM that are hidden, but have an image background. On the moment the elements are shown and the images are not found in cache, the images are loaded from the server. This action has a small delay, so your element first shows up without the image background. That might confuse the visitor.
</p>
<p>Note that there are other possible scenario&#8217;s that need image preloading, but this case is a nice introduction.</p>
<h2>Delaying image preloading</h2>
<p>
Why in the world would we like to delay the preloading of the images? Well, most browsers only allow two concurrent requests at the same time to the same domain (correct me if I&#8217;m wrong). When we do the image preloading on <code><a href="http://mootools.net/docs/Utilities/DomReady" title="Mootools Documentation: DomReady">domready</a></code>, it might hold up other resources that need to be loaded. Because we preload images that are not shown when the page loads, we can delay the preloading.
</p>
<h2>The javascript</h2>
<p>
Let&#8217;s say we have a total of five images that need to be preloaded. Here&#8217;s how I would preload the image, 3 seconds after the dom is ready:
</p>
<pre class="javascript"><code>Array.each.delay(3000,this,[
	['foo.gif', 'bar.png','moo.png','tools.png', 'mootools.png'],
	function(src){var img = new Image();img.src = src;}
]);
</code></pre>
<p>
Easy huh? It delays a call to Array.each by 3000 ms. Then it passes the array of images as the first argument, and the function as the second. You can read more about <code>delay</code> at the <a href="http://mootools.net/docs/Native/Function#Function:delay" title="Mootools Documentation">Mootools Docs</a>.</p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=MIfRvK"><img src="http://feeds.feedburner.com/~a/solutoire?i=MIfRvK" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=vkKaN"><img src="http://feeds.feedburner.com/~f/solutoire?i=vkKaN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=XnH5n"><img src="http://feeds.feedburner.com/~f/solutoire?i=XnH5n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=9MwAn"><img src="http://feeds.feedburner.com/~f/solutoire?i=9MwAn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=ZW62n"><img src="http://feeds.feedburner.com/~f/solutoire?i=ZW62n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=wuJON"><img src="http://feeds.feedburner.com/~f/solutoire?i=wuJON" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=Rlfmn"><img src="http://feeds.feedburner.com/~f/solutoire?i=Rlfmn" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/440049170" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/11/02/delayed-image-preloading-usin-mootools/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F11%2F02%2Fdelayed-image-preloading-usin-mootools%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/11/02/delayed-image-preloading-usin-mootools/</feedburner:origLink></item>
		<item>
		<title>Javascripts Loop Benchmarks</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/349656431/</link>
		<comments>http://solutoire.com/2008/07/29/javascripts-loop-benchmarks/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 18:04:27 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Notes]]></category>

		<category><![CDATA[benchmark]]></category>

		<category><![CDATA[efficiency]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[looping]]></category>

		<guid isPermaLink="false">http://solutoire.com/?p=186</guid>
		<description><![CDATA[
I tested a few looping techniques in the past, but I found a benchmark page which shows over 40 looping techniques and their running times. You can find the benchmark over here.
]]></description>
			<content:encoded><![CDATA[<p>
I tested a few <a href="http://solutoire.com/2007/02/02/efficient-looping-in-javascript/" title="Efficient Looping in Javascript">looping techniques</a> in the past, but I found a benchmark page which shows over 40 looping techniques and their running times. You can find the benchmark over <a href="http://blogs.sun.com/greimer/resource/loop-test.html" title="Javascript Loop Benchmarks">here</a>.</p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=XhRFoJ"><img src="http://feeds.feedburner.com/~a/solutoire?i=XhRFoJ" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=SQMQYJ"><img src="http://feeds.feedburner.com/~f/solutoire?i=SQMQYJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=lz0OXj"><img src="http://feeds.feedburner.com/~f/solutoire?i=lz0OXj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=gHaBjj"><img src="http://feeds.feedburner.com/~f/solutoire?i=gHaBjj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=OXzkIj"><img src="http://feeds.feedburner.com/~f/solutoire?i=OXzkIj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=2VkbkJ"><img src="http://feeds.feedburner.com/~f/solutoire?i=2VkbkJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=Nds3uj"><img src="http://feeds.feedburner.com/~f/solutoire?i=Nds3uj" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/349656431" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/07/29/javascripts-loop-benchmarks/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F07%2F29%2Fjavascripts-loop-benchmarks%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/07/29/javascripts-loop-benchmarks/</feedburner:origLink></item>
		<item>
		<title>Writing A Feed Reader</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/321512497/</link>
		<comments>http://solutoire.com/2008/06/27/writing-a-feed-reader/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 18:46:25 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Mootools]]></category>

		<category><![CDATA[Feed Reader]]></category>

		<category><![CDATA[Google AJAX Feed API]]></category>

		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://solutoire.com/?p=175</guid>
		<description><![CDATA[
Yesterday I was playing around with the Google AJAX Feed API. With the API, you can download any public Atom or RSS feed using only javascript. By mixing the Google AJAX Feed API with MooTools 1.2, I wrote a tiny feed reader application in 30 lines of javascript goodness.



My tiny feed reader

The Feed Reader

This feed [...]]]></description>
			<content:encoded><![CDATA[<p>
Yesterday I was playing around with the <a href="http://code.google.com/apis/ajaxfeeds/" title="Google AJAX Feed API">Google AJAX Feed API</a>. With the API, you can download any public Atom or RSS feed using only javascript. By mixing the Google AJAX Feed API with <a href="http://mootools.net/" title="MooTools Javascript Framework">MooTools 1.2</a>, I wrote a <a href="http://solutoire.com/experiments/apps/feedreader/" title="Feed Reader Example">tiny feed reader</a> application in 30 lines of javascript goodness.
</p>
<div class="img">
<a href="http://solutoire.com/experiments/apps/feedreader/" title="Feed Reader Example"><img src="http://solutoire.com/blog/wp-content/uploads/2008/06/feed.png" alt="My tiny feed reader" title="feed" width="320" height="147" /></a><br />
<i>My tiny feed reader</i>
</div>
<h2>The Feed Reader</h2>
<p>
This feed reader polls the <a href="http://www.colourlovers.com/" title="COLOURlovers">COLOURlovers.com</a> Palettes feed and Colours feed every 20 seconds for new items. New items are highlighted with the MooTools <code><a href="http://docs.mootools.net/Fx/Fx.Tween#Element:highlight" title="MooTools Docs - Fx/Fx.Tween">Element.highlight()</a></code> function. The Google AJAX Feed API passes <abbr title="JavaScript Object Notation">JSON</abbr> to a callback function, which adds the new &#8216;colour&#8217; or &#8216;palette&#8217; entries to the list. Below you can see the uncommented code. The <a href="http://solutoire.com/experiments/apps/feedreader/" title="MooTools Feed Reader">feed reader example</a> contains a <a href="http://solutoire.com/experiments/apps/feedreader/scripts/feed.js">commented version</a>.
</p>
<pre><code>var Site = {
	entries: [],
	timer: 0,
	init: function(){
		this.paletteFeed = new google.feeds.Feed('http://feeds.feedburner.com/ColourloversCoup0Palettes/New');
		this.colourFeed = new google.feeds.Feed('http://feeds.feedburner.com/ColourloversCoup0Colours/New');
		this.poll.periodical(1000, this);
	},
	poll: function(){
		if (--this.timer &lt;= 0) {
			this.colourFeed.load(this.onLoadCallback.bind(this));
			this.paletteFeed.load(this.onLoadCallback.bind(this));
			this.timer = 20;
		}
		$('refresh').set('html','Refreshing feeds in ' + this.timer + ' second(s)...');
	},
	onLoadCallback:function(json){
		if (json.error) return;
		for (var i = json.feed.entries.length - 1; i &gt;= 0; i--) {
			var entry = json.feed.entries[i];
			if (!this.entries.contains(entry.title)) {
				this.entries.push(entry.title);
				$('feeds').innerHTML = ('&lt;li class=&quot;entry&quot;&gt;&lt;a href=&quot;{link}&quot; title=&quot;{title}&quot;&gt;{content}&lt;/a&gt;&lt;/li&gt;').substitute(entry) + $('feeds').innerHTML;
			}
		}
		$$('.entry').set('tween',{duration:2000}).highlight().removeClass('entry');
	}
};
google.load('feeds', '1');
window.addEvent('domready', Site.init.bind(Site));
</code></pre>
<h2>What&#8217;s next?</h2>
<ul>
<li><a href="http://code.google.com/apis/ajaxfeeds/" title="Google AJAX Feed API">Google AJAX Feed API</a></li>
<li><a href="http://docs.mootools.net/" title="MooTools Docs">MooTools Docs</a></li>
</ul>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=S88aSh"><img src="http://feeds.feedburner.com/~a/solutoire?i=S88aSh" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=NwYOQI"><img src="http://feeds.feedburner.com/~f/solutoire?i=NwYOQI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=YoPy6i"><img src="http://feeds.feedburner.com/~f/solutoire?i=YoPy6i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=XYL89i"><img src="http://feeds.feedburner.com/~f/solutoire?i=XYL89i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=uZDdEi"><img src="http://feeds.feedburner.com/~f/solutoire?i=uZDdEi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=ItzTxI"><img src="http://feeds.feedburner.com/~f/solutoire?i=ItzTxI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=m6Y65i"><img src="http://feeds.feedburner.com/~f/solutoire?i=m6Y65i" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/321512497" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/06/27/writing-a-feed-reader/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F06%2F27%2Fwriting-a-feed-reader%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/06/27/writing-a-feed-reader/</feedburner:origLink></item>
		<item>
		<title>Sending Javascript Functions Over JSON</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/310347641/</link>
		<comments>http://solutoire.com/2008/06/12/sending-javascript-functions-over-json/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 11:55:58 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Flotr]]></category>

		<category><![CDATA[json]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://solutoire.com/?p=172</guid>
		<description><![CDATA[
In this post I&#8217;ll present a way to send javascript functions over JSON from a php server (but it should work on other platforms too). Since PHP version 5.20 PHP includes the functions json_encode() and json_decode(). These functions encode values into JSON formatting and decode JSON formatted strings into associative arrays. The json_encode() function is [...]]]></description>
			<content:encoded><![CDATA[<p>
In this post I&#8217;ll present a way to send javascript functions over JSON from a php server (but it should work on other platforms too). Since PHP version 5.20 PHP includes the functions <code><a href="http://us.php.net/json_encode" title="PHP.net: json_encode()">json_encode()</a></code> and <code><a href="http://us.php.net/json_decode" title="PHP.net: json_decode()">json_decode()</a></code>. These functions encode values into JSON formatting and decode JSON formatted strings into <a href="http://en.wikipedia.org/wiki/Associative_array" title="Wikipedia: Associative array">associative arrays</a>. The <code>json_encode()</code> function is not able to encode a value into a (javascript) function. This is a common issue when configuring graphs from <a href="http://www.solutoire.com/flotr" title="Flotr Javascript Plotting Library">Flotr</a> (my Javascript plotting library) with JSON data. Here are my findings.
</p>
<h2>The Problem: Server-side</h2>
<p>
To get a better feeling for the problem, I&#8217;ll show you what happens when we pass an array to json_encode:
</p>
<pre class="php"><code>// Our sample array
$foo = array(
  'number'  => 1,
  'float'   => 1.5,
  'array'   => array(1,2),
  'string'  => 'bar',
  'function'=> 'function(){return "foo bar";}'
);

// Now encode the array to JSON format
$json = json_encode($foo);

// Send to to the client
echo $json;
...
// This sends the following string to the client:
{
  "number":1,
  "float":1.5,
  "array":[1,2],
  "string":"bar",
  "function":"function(){return \"foo bar\";}"
}</code></pre>
<p>
Because PHP reports some errors when we don&#8217;t enclose the &#8216;function&#8217; with quotation marks, it not possible to omit those. So basically, it&#8217;s not possible to use <code>json_encode()</code> to create a JSON formatted string with functions.
</p>
<h2>The solution</h2>
<p>
My solution is very simple:
</p>
<ul>
<li>Loop over the associative array that is about to be encoded</li>
<li>Look for values that start with a function definition (like &#8216;function(&#8217;)</li>
<li>Remember the value and replace it with a unique key (within the assoc array)</li>
<li>Encode the changed assoc array to JSON using <code>json_encode()</code></li>
<li>Replace the unique keys enclosed in quotation marks with their original values</li>
<li>Echo the json string</li>
</ul>
<p>In PHP:</p>
<pre class="php"><code>// Our sample array
$foo = array(
  'number'  => 1,
  'float'   => 1.5,
  'array'   => array(1,2),
  'string'  => 'bar',
  'function'=> 'function(){return "foo bar";}'
);

$value_arr = array();
$replace_keys = array();
foreach($foo as $key => &#038;$value){
  // Look for values starting with 'function('
  if(strpos($value, 'function(')===0){
    // Store function string.
    $value_arr[] = $value;
    // Replace function string in $foo with a 'unique' special key.
    $value = '%' . $key . '%';
    // Later on, we'll look for the value, and replace it.
    $replace_keys[] = '"' . $value . '"';
  }
}

// Now encode the array to json format
$json = json_encode($foo);

// $json looks like:
{
  "number":1,
  "float":1.5,
  "array":[1,2],
  "string":"bar",
  "function":"%function%"
}

// Replace the special keys with the original string.
$json = str_replace($replace_keys, $value_arr, $json);

// Send to to the client
echo $json;

// This echoes the following string:
{
  "number":1,
  "float":1.5,
  "array":[1,2],
  "string":"bar",
  "function":function(){return "foo bar";}
}
</code></pre>
<p>
Now the &#8216;function&#8217; key is not a String anymore, but it&#8217;s a function. So our problem is solved. When using <a href="http://www.prototypejs.org/" title="Prototype Javascript Library">Prototype</a>, it will look something like this:
</p>
<pre><code>new Ajax.Request('json_server.php', {
  method:'get',
  onSuccess: function(transport){
     var json = transport.responseText.evalJSON();
     alert(json.function()); // => alerts 'foo bar'
   }
});</code></pre>
<p>
There might be dozens of solutions to the problem stated above, but I couldn&#8217;t find &#8216;em on the net. If you know a better technique, please share it!</p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=364bt5"><img src="http://feeds.feedburner.com/~a/solutoire?i=364bt5" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=lgIMQI"><img src="http://feeds.feedburner.com/~f/solutoire?i=lgIMQI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=VHENGi"><img src="http://feeds.feedburner.com/~f/solutoire?i=VHENGi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=X8OoOi"><img src="http://feeds.feedburner.com/~f/solutoire?i=X8OoOi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=YVEd6i"><img src="http://feeds.feedburner.com/~f/solutoire?i=YVEd6i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=NQxFFI"><img src="http://feeds.feedburner.com/~f/solutoire?i=NQxFFI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=64Kdqi"><img src="http://feeds.feedburner.com/~f/solutoire?i=64Kdqi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/310347641" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/06/12/sending-javascript-functions-over-json/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F06%2F12%2Fsending-javascript-functions-over-json%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/06/12/sending-javascript-functions-over-json/</feedburner:origLink></item>
		<item>
		<title>Mootools Puzzle Game</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/259801123/</link>
		<comments>http://solutoire.com/2008/03/28/mootools-puzzle-game/#comments</comments>
		<pubDate>Fri, 28 Mar 2008 18:45:57 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Mootools]]></category>

		<category><![CDATA[about]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[puzzle]]></category>

		<guid isPermaLink="false">http://solutoire.com/2008/03/28/mootools-puzzle-game/</guid>
		<description><![CDATA[
I wrote a pretty useless puzzle game that makes use of Mootools. I was updating the &#8216;about&#8217; page on this blog, and I was looking for an original way to show a picture of myself. So take a look at the the about page and play around with it.



Play with me

]]></description>
			<content:encoded><![CDATA[<p>
I wrote a pretty useless puzzle game that makes use of Mootools. I was updating the &#8216;about&#8217; page on this blog, and I was looking for an original way to show a picture of myself. So take a look at the the <a href="http://www.solutoire.com/about" title="About Bas Wenneker">about page</a> and <a href="http://www.solutoire.com/about#puzzle" title="Puzzle with me">play around</a> with it.
</p>
<div class="img">
<a href="http://solutoire.com/about#puzzle" title="Puzzle Game"><img src="http://solutoire.com/blog/wp-content/uploads/2008/03/puzzle-game.png" style="border:0px;" alt="Puzzle Game" /></a><br />
<i>Play with me</i>
</div>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=bhnqRm"><img src="http://feeds.feedburner.com/~a/solutoire?i=bhnqRm" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=4vyqNI"><img src="http://feeds.feedburner.com/~f/solutoire?i=4vyqNI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=f6jnji"><img src="http://feeds.feedburner.com/~f/solutoire?i=f6jnji" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=faSG8i"><img src="http://feeds.feedburner.com/~f/solutoire?i=faSG8i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=VKKU1i"><img src="http://feeds.feedburner.com/~f/solutoire?i=VKKU1i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=UFCcmI"><img src="http://feeds.feedburner.com/~f/solutoire?i=UFCcmI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=sJT4Ki"><img src="http://feeds.feedburner.com/~f/solutoire?i=sJT4Ki" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/259801123" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/03/28/mootools-puzzle-game/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F03%2F28%2Fmootools-puzzle-game%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/03/28/mootools-puzzle-game/</feedburner:origLink></item>
		<item>
		<title>HTML Conditional Comments</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/256620722/</link>
		<comments>http://solutoire.com/2008/03/23/html-conditional-comments/#comments</comments>
		<pubDate>Sun, 23 Mar 2008 19:12:17 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Other]]></category>

		<category><![CDATA[conditional comments]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[internet explorer]]></category>

		<guid isPermaLink="false">http://solutoire.com/2008/03/23/html-conditional-comments/</guid>
		<description><![CDATA[
Ever used conditional statements/comments in your html? I do, actually, use the technique quite a lot (this site, Flotr). With HTML conditional comments you can detect browser type and version. Now don&#8217;t get too excited, because it&#8217;s only supported by Internet Explorer 5+ on Windows. Nevertheless, this way of browser detection is really elegant compared [...]]]></description>
			<content:encoded><![CDATA[<p>
Ever used conditional statements/comments in your html? I do, actually, use the technique quite a lot (this site, <a href="http://www.solutoire.com/flotr" title="Flotr Project Page">Flotr</a>). With HTML conditional comments you can detect browser type and version. Now don&#8217;t get too excited, because it&#8217;s only supported by Internet Explorer 5+ on Windows. Nevertheless, this way of browser detection is really elegant compared to nasty css hacks or javascript user agent detection. This article is shows you how you can use the conditional comments for several handy purposes.
</p>
<h2>Different types of statements</h2>
<p>
There are two types of conditional statements. The first type is the so-called <strong><i>downlevel-hidden</i></strong> statement, which hides the statement from browsers that don&#8217;t support conditional comments:
</p>
<pre><code class="html">&lt;!-- This is a regular HTML comment --&gt;
&lt;!--[if IE]&gt;
&lt;p&gt;This is a downlevel-hidden conditional statement.
Browsers that don't support conditional comments,
think this is a HTML comment.&lt;/p&gt;
&lt;![endif]--&gt;</code></pre>
<p>
IE browsers will render the paragraph, but others &#8216;ll omit it, because they think it&#8217;s a HTML comment.
</p>
<p>The next type of conditional comment is the <strong><i>downlevel-revealed</i></strong> statement. The statement is rendered by browsers that don&#8217;t support conditional statements, and of course, IE 5+ browsers only render the statement when they pass the condition.</p>
<pre><code class="html">&lt;![if (gte IE 6)&amp;(lt IE 8)]&gt;
&lt;p&gt;This paragraph is shown by IE6, IE7 and all browsers
that don't support conditional comments.&lt;/p&gt;
&lt;![endif]&gt;</code></pre>
<h2>The conditions</h2>
<p>
<abbr title="Microsoft Developer Network">MSDN</abbr> has a nice list of <a href="http://msdn2.microsoft.com/en-us/library/ms537512.aspx#syntax" title="MSDN Conditional Comments">possible conditions</a>, so I&#8217;m not going to repeat that, I&#8217;ll just give some examples with an explanation.
</p>
<pre><code class="html">&lt;!--[if IE 5]&gt;&lt;p&gt;IE 5&lt;/p&gt;&lt;![endif]--&gt;
&lt;!--[if gte IE 5]&gt;&lt;p&gt;IE 5+&lt;/p&gt;&lt;![endif]--&gt;
&lt;!--[if gt IE 5]&gt;&lt;p&gt;IE 6+&lt;/p&gt;&lt;![endif]--&gt;
&lt;!--[if !(IE)]&gt;&lt;p&gt;Never shown&lt;/p&gt;&lt;![endif]--&gt;
&lt;!--[if (IE 6)|(IE 7)]&gt;&lt;p&gt;IE6 and IE7&lt;/p&gt;&lt;![endif]--&gt;
&lt;!--[if (gte IE 5)&amp;!(IE 5.5)]&gt;&lt;p&gt;IE5+ except IE5.5&lt;/p&gt;&lt;![endif]--&gt;
&lt;!--[if true]&gt;
&lt;![if IE 6]&gt;&lt;p&gt;IE6&lt;/p&gt;&lt;![endif]&gt;
&lt;![if IE 7]&gt;&lt;p&gt;IE7&lt;/p&gt;&lt;![endif]&gt;
&lt;![endif]--&gt;
&lt;![if !(IE)]&gt;&lt;p&gt;All non IE browsers&lt;/p&gt;&lt;![endif]&gt;
</code></pre>
<h2>The uses</h2>
<p>
If you take a look in the source of this page you can see the following conditional tag in between the <code>header</code> tags.
</p>
<pre><code class="html">&lt;!--[if lt IE 7]&gt;
&lt;link type=&quot;text/css&quot; rel=&quot;stylesheet&quot; href=&quot;http://solutoire.com/blog/wp-content/themes/v8.gene/styles/ie6.css&quot; /&gt;
&lt;![endif]--&gt;
</code></pre>
<p>
This conditional comment helps me with keeping my original css file free of hacks. This means that all non-IE browsers render this page just fine, but IE6- messes up most of the positioned elements. Non IE and IE7+ browsers think it&#8217;s just a HTML comment, so the css file is not loaded, but IE6- browsers load the css file that corrects the css styles.
</p>
<p>The same thing can be done for javascript files. My javascript plotting library <a href="http://solutoire.com/flotr/" title="Flotr Project Page">Flotr</a> needs <a href="http://excanvas.sourceforge.net/" title="Excanvas Project Page">Excanvas</a> to treat <a href="http://en.wikipedia.org/wiki/Vector_Markup_Language" title="Wikipedia Vector Markup Language">VML</a> as a canvas element. Excanvas is only needed for IE browsers, because most popular non IE browsers support the canvas element.</p>
<pre><code class="html">&lt;!--[if IE]&gt;&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;path/to/excanvas.js&quot;&gt;&lt;/script&gt;&lt;![endif]--&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;path/to/prototype-x.x.x.x.js&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot; src=&quot;path/to/flotr.js&quot;&gt;&lt;/script&gt;
</code></pre>
<h2>Further reading</h2>
<p>
I recommend reading the article on MSDN about <a href="http://msdn2.microsoft.com/en-us/library/ms537512.aspx">conditional statements</a> if this post didn&#8217;t make any sense to you. Also, Peter-Paul Koch wrote a <a href="http://www.quirksmode.org/css/condcom.html">nice roundup</a> on conditional comments at his website <a href="http://www.quirksmode.org/" title="QuirksMode">quirksmode.org</a>.</p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=nwrUMW"><img src="http://feeds.feedburner.com/~a/solutoire?i=nwrUMW" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=aP6QkI"><img src="http://feeds.feedburner.com/~f/solutoire?i=aP6QkI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=FKhZri"><img src="http://feeds.feedburner.com/~f/solutoire?i=FKhZri" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=o2y6ji"><img src="http://feeds.feedburner.com/~f/solutoire?i=o2y6ji" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=j8zoci"><img src="http://feeds.feedburner.com/~f/solutoire?i=j8zoci" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=H9w7tI"><img src="http://feeds.feedburner.com/~f/solutoire?i=H9w7tI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=ilNgji"><img src="http://feeds.feedburner.com/~f/solutoire?i=ilNgji" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/256620722" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/03/23/html-conditional-comments/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F03%2F23%2Fhtml-conditional-comments%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/03/23/html-conditional-comments/</feedburner:origLink></item>
		<item>
		<title>What’s in your feed reader?</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/255668315/</link>
		<comments>http://solutoire.com/2008/03/21/whats-in-your-feed-reader/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 19:01:00 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Other]]></category>

		<category><![CDATA[feeds]]></category>

		<guid isPermaLink="false">http://solutoire.com/2008/03/21/whats-in-your-feed-reader/</guid>
		<description><![CDATA[
Despite of the fact I&#8217;m always hungry for new feeds with interesting articles, I&#8217;m not able to find any new feeds lately. I asked for help from Google Alerts, which notifies me when the GoogleBot hits something I defined an alert for. Though it doesn&#8217;t come up with great content I&#8217;m looking for. That&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p>
Despite of the fact I&#8217;m always hungry for new feeds with interesting articles, I&#8217;m not able to find any new feeds lately. I asked for help from Google Alerts, which notifies me when the GoogleBot hits something I defined an alert for. Though it doesn&#8217;t come up with great content I&#8217;m looking for. That&#8217;s the reason I&#8217;d like to ask you for helping me out, because obviously I&#8217;m looking at the wrong spot. In exchange I show you 10 of my favorite feeds.
</p>
<div class="img">
<a style="border: 0px; background:#D2E8FF;" href="http://feeds.feedburner.com/solutoire" title="Grab the Solutoire.com feed"><img  style="border: 0px;" src='http://solutoire.com/blog/wp-content/uploads/2008/03/feed-icon.png' alt='Feed icon' /></a><br />
<a href="http://feeds.feedburner.com/solutoire" title="Grab the Solutoire.com feed">Grab the Solutoire.com feed!</a>
</div>
<h2>My Feeds</h2>
<p>
I use Google Reader as my feed reader (never tried something else). I never read all feed entries, most of the time I&#8217;ve more than 1000 unread articles. Here&#8217;s an unordered list of the ones I&#8217;m dedicated to:
</p>
<h2><a href="http://www.thinkvitamin.com/" title="Vitamin">Vitamin</a> (<a href="http://feeds.feedburner.com/vitaminmasterfeed" title="Vitamin feed">feed</a>)</h2>
<p>
Vitamin is a resource for web designers, developers and entrepreneurs. The online magazine serves great content written by top authors from the web industry.</p>
<h2><a href="http://www.shauninman.com/" title="ShaunInman.com">ShaunInman.com</a> (<a href="http://www.shauninman.com/feeds/plus" title="ShaunInman.com feed">feed</a>)</h2>
<p>
Shaun Inman is a successful designer and developer. He&#8217;s also the founder of <a href="http://haveamint.com/" title="Mint">Mint</a>, the web site analytics program.</p>
<h2><a href="http://ajaxian.com/" title="Ajaxian">Ajaxian</a> (<a href="http://feeds.feedburner.com/ajaxian" title="Ajaxian feed">feed</a>)</h2>
<p>My daily piece of Ajax.</p>
<h2><a href="http://www.devlounge.net/" title="Devlounge">Devlounge</a> (<a href="http://www.devlounge.net/" title="Devlounge feed">feed</a>)</h2>
<p>Online magazine for designers and developers.</p>
<h2><a href="http://www.lifehack.org/" title="Lifehack.org">Lifehack.org</a> (<a href="http://feeds.lifehack.org/Lifehack" title="Lifehack.org feed">feed</a>)</h2>
<p>Daily digest and pointers on productivity, getting things done and lifehacks.</p>
<h2><a href="http://lifehacker.com/" title="Lifehacker">Lifehacker</a> (<a href="http://feeds.gawker.com/lifehacker/full" title="Lifehacker feed">feed</a>)</h2>
<p>Tech tricks, tips and downloads for getting things done. This site delivers up to 10 articles a day!</p>
<h2><a href="http://www.simplebits.com/" title="SimpleBits">SimpleBits</a> (<a href="http://www.simplebits.com/xml/rss.xml" title="SimpleBits feed">feed</a>)</h2>
<p>The blog/company website of designer and author Dan Cederholm.</p>
<h2><a href="http://snook.ca/jonathan/" title="Snook.ca">Snook.ca</a> (<a href="http://feeds.feedburner.com/snookca" title="Snook.ca feed">feed</a>)</h2>
<p>
Snook.ca is the site of web designer, developer, writer and speaker, Jonathan Snook. The articles on the site focus on web development, design, and freelance.
</p>
<h2><a href="http://andrewdupont.net/" title="Painfully Obvious">Painfully Obvious</a>  (<a href="http://andrewdupont.net/feed/atom/" title="Painfully Obvious feed">feed</a>)</h2>
<p>The weblog of Andrew Dupont, web interface developer and writer.</p>
<h2><a href="http://web20show.com/episodes" title="The Web 2.0 Show">The Web 2.0 Show</a> (<a href="http://feeds.feedburner.com/web20Show" title="The Web 2.0 Show feed">feed</a>)</h2>
<p>The Web 2.0 Show is a podcast about emerging technologies commonly referred to as &#8220;Web 2.0&#8243;, and is hosted by Adam Stacoviak and Josh Owens.</p>
<p style="font-size: 1.5em;font-weight:bold; text-align:center">Now, the crucial question is, what&#8217;s in your feed reader?</p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=vBR6oJ"><img src="http://feeds.feedburner.com/~a/solutoire?i=vBR6oJ" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=zEDcLI"><img src="http://feeds.feedburner.com/~f/solutoire?i=zEDcLI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=JpDdLi"><img src="http://feeds.feedburner.com/~f/solutoire?i=JpDdLi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=O2zVYi"><img src="http://feeds.feedburner.com/~f/solutoire?i=O2zVYi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=NJQLRi"><img src="http://feeds.feedburner.com/~f/solutoire?i=NJQLRi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=g8aq5I"><img src="http://feeds.feedburner.com/~f/solutoire?i=g8aq5I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=E60u9i"><img src="http://feeds.feedburner.com/~f/solutoire?i=E60u9i" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/255668315" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/03/21/whats-in-your-feed-reader/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F03%2F21%2Fwhats-in-your-feed-reader%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/03/21/whats-in-your-feed-reader/</feedburner:origLink></item>
		<item>
		<title>Update: Mootools CSS Styled Scrollbar</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/249746368/</link>
		<comments>http://solutoire.com/2008/03/11/update-mootools-css-styled-scrollbar/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 07:16:30 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Mootools]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[scrollbar]]></category>

		<guid isPermaLink="false">http://solutoire.com/2008/03/11/update-mootools-css-styled-scrollbar/</guid>
		<description><![CDATA[
I&#8217;ve updated my previous post Mootools CSS Styled Scrollbar. I&#8217;ve added instructions about how to make it work with Mootools version 1.11. Also the example is updated. On the Mootools forums someone called &#8216;horseweapon&#8217; wrote a simple function that used my code to make scrollbars. I used his function to work with the example. You [...]]]></description>
			<content:encoded><![CDATA[<p>
I&#8217;ve updated my previous post <a href="http://solutoire.com/2008/03/10/mootools-css-styled-scrollbar/" title="Mootools CSS Styled Scrollbar">Mootools CSS Styled Scrollbar</a>. I&#8217;ve added instructions about how to make it work with Mootools version 1.11. Also the example is updated. On the Mootools forums someone called &#8216;horseweapon&#8217; wrote a <a href="http://forum.mootools.net/viewtopic.php?pid=43321#post-43311" title="Mootools Forums">simple function</a> that used my code to make scrollbars. I used his function to work with the example. You can see the updated example <a href="http://solutoire.com/experiments/scrollbar/index.html" title="Mootools Scrollbar Example">over here</a>.</p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=1qynWM"><img src="http://feeds.feedburner.com/~a/solutoire?i=1qynWM" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=Ttd9LI"><img src="http://feeds.feedburner.com/~f/solutoire?i=Ttd9LI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=gkU9ui"><img src="http://feeds.feedburner.com/~f/solutoire?i=gkU9ui" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=dHgjni"><img src="http://feeds.feedburner.com/~f/solutoire?i=dHgjni" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=SVPO4i"><img src="http://feeds.feedburner.com/~f/solutoire?i=SVPO4i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=AqaqgI"><img src="http://feeds.feedburner.com/~f/solutoire?i=AqaqgI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=VGvD2i"><img src="http://feeds.feedburner.com/~f/solutoire?i=VGvD2i" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/249746368" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/03/11/update-mootools-css-styled-scrollbar/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F03%2F11%2Fupdate-mootools-css-styled-scrollbar%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/03/11/update-mootools-css-styled-scrollbar/</feedburner:origLink></item>
		<item>
		<title>Mootools CSS Styled Scrollbar</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/249746369/</link>
		<comments>http://solutoire.com/2008/03/10/mootools-css-styled-scrollbar/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 21:59:35 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Mootools]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[scrollbar]]></category>

		<guid isPermaLink="false">http://solutoire.com/2008/03/10/mootools-css-styled-scrollbar/</guid>
		<description><![CDATA[
I wrote a small piece of javascript that creates a css styled scrollbar from the Mootools (version 1.2b2) Slider class. I know there is a scrollbar class for Mootools but it&#8217;s more than 100 lines of code. If you only need one or two bars, try my solution instead. The example page shows three div [...]]]></description>
			<content:encoded><![CDATA[<p>
I wrote a small piece of javascript that creates a css styled scrollbar from the Mootools (version 1.2b2) Slider class. I know there is <a href="http://mootools.net/uploads/scrollbar/" title="Mootools Scrollbar Class">a scrollbar class</a> for Mootools but it&#8217;s more than 100 lines of code. If you only need one or two bars, try my solution instead. <a href="http://www.solutoire.com/experiments/scrollbar/index.html" title="Mootools Scrollbar Example">The example page</a> shows three div elements with a styled horizontal and/or vertical scrollbars.
</p>
<div class="img">
<a href="http://www.solutoire.com/experiments/scrollbar/index.html" title="Mootools Scrollbar"><img src="http://solutoire.com/blog/wp-content/uploads/2008/03/scrollbar.png" alt="Mootools Scrollbar" /></a><br />
<i>Mootools Powered Scrollbar</i>
</div>
<h2>Update: making it work with Mootools 1.11</h2>
<p>
It&#8217;s easy to get his working under Mootools 1.11. The syntax for getting the <code>scrollsizes</code> and <code>sizes</code> in Mootools 1.2b2 has changed a bit:
</p>
<pre><code class=""javascript">// => Mootools 1.2b2, elements' size and vertical scrollsize
var size = element.getSize().y;
var scrollSize = element.getScrollSize().y;
// => Mootools 1.11, elements' size and vertical scrollsize
var size = element.getSize().size.y;
var scrollSize = element.getSize().scrollSize.y;
</code></pre>
<p>
For the scrollbars, I&#8217;ve used the size and scrollsize of the content element. So to get the scrollbars working under Mootools 1.11, you have to change only one line per scrollbar (see the <code>steps</code> option):
</p>
<pre><code class=""javascript">// => For vertical scrollbars
...
new Slider(scrollbar, handle, {
	steps: content.getSize().scrollSize.y - content3.getSize().size.y,
	mode: 'vertical',
...
// => For horizontol scrollbars
...
new Slider(scrollbar, handle, {
	steps: content.getSize().scrollSize.x - content3.getSize().size.x,
	mode: 'vertical',
...
</code></pre>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=LK3Qr2"><img src="http://feeds.feedburner.com/~a/solutoire?i=LK3Qr2" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=T4aI0I"><img src="http://feeds.feedburner.com/~f/solutoire?i=T4aI0I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=PZYqci"><img src="http://feeds.feedburner.com/~f/solutoire?i=PZYqci" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=3OVeHi"><img src="http://feeds.feedburner.com/~f/solutoire?i=3OVeHi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=TZ6dsi"><img src="http://feeds.feedburner.com/~f/solutoire?i=TZ6dsi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=mI7kLI"><img src="http://feeds.feedburner.com/~f/solutoire?i=mI7kLI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=Iv0dxi"><img src="http://feeds.feedburner.com/~f/solutoire?i=Iv0dxi" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/249746369" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/03/10/mootools-css-styled-scrollbar/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F03%2F10%2Fmootools-css-styled-scrollbar%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/03/10/mootools-css-styled-scrollbar/</feedburner:origLink></item>
		<item>
		<title>New Flotr Example: Drawing series with JSON data</title>
		<link>http://feeds.feedburner.com/~r/solutoire/~3/249746370/</link>
		<comments>http://solutoire.com/2008/03/07/new-flotr-example-drawing-series-with-json-data/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 18:33:17 +0000</pubDate>
		<dc:creator>Bas Wenneker</dc:creator>
		
		<category><![CDATA[Flotr]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[json]]></category>

		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://solutoire.com/2008/03/07/new-flotr-example-drawing-series-with-json-data/</guid>
		<description><![CDATA[
I added an example to the Flotr example section. This example shows how to use requested JSON data to draw a graph. Go to the example section or take a look at the example directly. To learn more about handling JSON with Prototype, read Introduction to JSON
]]></description>
			<content:encoded><![CDATA[<p>
I added an example to the <a href="http://www.solutoire.com/flotr/" title="Flotr Project Page">Flotr</a> example section. This example shows how to use requested JSON data to draw a graph. Go to the <a href="http://solutoire.com/flotr/docs#examples" title="Flotr Examples">example section</a> or take a look at <a href="http://www.solutoire.com/experiments/flotr/examples/json-data.html" title="Flotr JSON Data Example">the example</a> directly. To learn more about handling JSON with Prototype, read <a href="http://prototypejs.org/learn/json" title="Introduction to JSON">Introduction to JSON</a></p>

<p><a href="http://feeds.feedburner.com/~a/solutoire?a=Zyq5fi"><img src="http://feeds.feedburner.com/~a/solutoire?i=Zyq5fi" border="0"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~f/solutoire?a=fWswfI"><img src="http://feeds.feedburner.com/~f/solutoire?i=fWswfI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=Zzmjyi"><img src="http://feeds.feedburner.com/~f/solutoire?i=Zzmjyi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=pWBZ8i"><img src="http://feeds.feedburner.com/~f/solutoire?i=pWBZ8i" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=pwzROi"><img src="http://feeds.feedburner.com/~f/solutoire?i=pwzROi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=h6NXlI"><img src="http://feeds.feedburner.com/~f/solutoire?i=h6NXlI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/solutoire?a=Rpegui"><img src="http://feeds.feedburner.com/~f/solutoire?i=Rpegui" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/solutoire/~4/249746370" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://solutoire.com/2008/03/07/new-flotr-example-drawing-series-with-json-data/feed/</wfw:commentRss>
		<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetItemData?uri=solutoire&amp;itemurl=http%3A%2F%2Fsolutoire.com%2F2008%2F03%2F07%2Fnew-flotr-example-drawing-series-with-json-data%2F</feedburner:awareness><feedburner:origLink>http://solutoire.com/2008/03/07/new-flotr-example-drawing-series-with-json-data/</feedburner:origLink></item>
	<feedburner:awareness>http://api.feedburner.com/awareness/1.0/GetFeedData?uri=solutoire</feedburner:awareness></channel>
</rss>
