<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Shiny Blog</title>
	
	<link>http://blog.shinylittlething.com</link>
	<description />
	<pubDate>Tue, 10 Mar 2009 15:42:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Moblurorg" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Enabling Dynamic Plugin Support for your JavaScript Application</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/WJ02IgsV4NY/</link>
		<comments>http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 15:38:56 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[ja]]></category>

		<guid isPermaLink="false">http://blog.shinylittlething.com/?p=151</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/';
var dzone_title = 'Enabling Dynamic Plugin Support for your JavaScript Application';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Hi fellow reader,
I recently came through a problem while working on a javascript framework on top of jQuery.  At one point, having one big javascript file containing all the application objects becomes hard to both naviguate and maintain.
From here you want to ease your developement process by splitting your main class in small, specialized, classes [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/';
var dzone_title = 'Enabling Dynamic Plugin Support for your JavaScript Application';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>Hi fellow reader,</p>
<p>I recently came through a problem while working on a javascript framework on top of jQuery.  At one point, having one big javascript file containing all the application objects becomes hard to both naviguate and maintain.</p>
<p>From here you want to ease your developement process by splitting your main class in small, specialized, classes stored in different files and then includes all these files using &lt;script&gt; tags. This is not convenient, you will have HTTP connections overhead even before your page DOM is loaded and displayed.</p>
<p>You could eventually make use of a server side tool like the PHP library <a href="http://code.google.com/p/minify/">Minify</a> to combine, minify and cache your javascript files. Hovewer I&#8217;ll talk about a system that dynamically and on-demand loads components using <strong>jQuery&#8217;s Ajax implementation</strong>.</p>
<h2>Simple Javascript Class</h2>
<p>Let&#8217;s start a simple Javascript Class :</p>
<pre>
<pre class="brush: javascript">
var shinyObject = function() {

};
</pre>
</pre>
<p>Extending our classe  with the saySomething() method :</p>
<pre>
<pre class="brush: javascript">
shinyObject.saySomething = function() {
  alert(&quot;Something&quot;);
}
</pre>
</pre>
<p>Ok,  in firebug console we can now type shinyObject.saySomething();  and the revelant code will be executed.</p>
<h2>Plugin support</h2>
<p><strong><strong>Warning, the following code is for concept demonstration pupose only on should not be used in production. Please disregard security concerns, this is not the point.<br />
</strong></strong></p>
<p>Onto creating our <strong>plugin module loader</strong> for our main class. Here is the new method :</p>
<pre>
<pre class="brush: javascript">
shinyObject.loadPlugin = function(options) {
  this.plugin_path = &quot;./&quot;;

  $.ajax(
    {
      type      : &quot;get&quot;,
      url       : shinyObject.plugin_path + options.name + &quot;.js&quot;,
      dataType  : &quot;text&quot;,
      success   : function(code) {
        if(typeof shinyObject[options.name] != &#039;object&#039;) {
          var plugin = eval(code);
          if(typeof plugin == &#039;object&#039;) {
            shinyObject[options.name] = plugin;
          }
          else {
            alert(&quot;Impossible to load &quot; + options.name + &quot; module. Please check your module code syntax.&quot;);
          }
        }
      }
    }
  )
</pre>
</pre>
<p>This snippet is rather easy to understand, the loadPlugin method take a single JSON object as argument, this is convenient because we will want to add more parameters later.  The name of an existing file is passed to the ajax() jQuery method and the results of this HTTP request is passed to a callback function.</p>
<p>If  shinyObject do not already have an instance of this particular plugin in its register table, then we evaluate the code. If the evaluated source code is a valid javascript object, we are affecting  it to a new entry in it&#8217;s register table, otherwise,  warn the developper of possible mistake in the plugin.</p>
<h2>Creating a Plugin</h2>
<p>To create a plugin for our appplication let&#8217;s create a new file in shinyObject.plugin_path  named saySomethingElse.js and put the following snippet inside :</p>
<pre>
<pre class="brush: javascript">
(function () {
  var a_local_variable = &quot;local variable is local&quot;;

  return {
    saySomethingElse = function() {

      alert(&quot;Something Else Matters!&quot;)
      alert(&quot;And you can use local variables because : &quot; + a_local_variable);

    }
  }
})();
</pre>
<p>The important thing here is the self executing function notation :</p>
<pre class="brush: javascript">

(function () {
  /* code */
})();
</pre>
</pre>
<p>This notation is making the difference between a simple library and an autoexecuting piece of code that returns an object.</p>
<h2>Loading a Plugin</h2>
<p>Will are now adding the loadPlugin() call to our the onReady event of the page:</p>
<pre>
<pre class="brush: javascript">

$(document).ready(function() {
  shinyObject.loadPlugin({&#039;name&#039;: &#039;saySomethingElse&#039;});
}); 
</pre>
</pre>
<p>Once the DOM ready for action, our shinyObject will automatically load its dependencies. If the code contained in your plugin do not have to deal with the DOM at all, you can safely make this call directly from the &lt;head&gt; part of your html document. Call me obessional programmer if you want, but I personaly find it more convenient to have everything initialized a the same place.</p>
<h2>Using our Plugin</h2>
<p>Once loaded successfuly, you can access your plugin&#8217;s public methods and properties like this :</p>
<pre>
<pre class="brush: javascript">
/* Simple Method call */
shinyObject.saySomethingElse.saySomethingElse();
/*
Object.ModuleName.Method();
*/
</pre>
<p>As simple as 1, 2, 3.</pre>
<h2>Conclusion</h2>
<p>What we achieved here is rather simple but can be extremely useful in nowadays web applications, even regarding performances. Let&#8217;s say we are building a big application with hundred of plugins that may be optional widgets for our users. The solution described at the begining of this article will generate a great overhead in both bandwith and HTTP requests prior page rendering.</p>
<p><strong>Benefits of our dynamic plugins:</strong></p>
<ul>
<li>Fast Page rendering</li>
<li>Decoupled loading using Asyncronous HTTP</li>
<li>Saves a part of the Bandwidth</li>
<li>Easier library management for developpers</li>
</ul>
<p>What about you dear reader ? What are your solutions for huge javascript libraries management and plugin support ? I&#8217;m really interested to know about it !<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/" title="8 Ajax Data Controls and Effects to Work with Tables">8 Ajax Data Controls and Effects to Work with Tables</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/" title="7 jQuery Plugins to Really Enhance Users Experience">7 jQuery Plugins to Really Enhance Users Experience</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/" title="6 Image Manipulation Plugins for jQuery You Should Know About">6 Image Manipulation Plugins for jQuery You Should Know About</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/" title="Essential Web-Based tools for JavaScript Developers">Essential Web-Based tools for JavaScript Developers</a></li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=WJ02IgsV4NY:db0ZLkXc4rk:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=WJ02IgsV4NY:db0ZLkXc4rk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=WJ02IgsV4NY:db0ZLkXc4rk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=WJ02IgsV4NY:db0ZLkXc4rk:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/</feedburner:origLink></item>
		<item>
		<title>20+1 Shiny, Colorful iPhone Wallpapers from Flickr Artists</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/gE2KtjAsGq4/</link>
		<comments>http://blog.shinylittlething.com/2009/03/06/201-shiny-colorful-iphone-wallpapers-from-flickr-artists/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 14:17:40 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Collections]]></category>

		<category><![CDATA[Design]]></category>

		<category><![CDATA[flickr]]></category>

		<category><![CDATA[iphone]]></category>

		<category><![CDATA[shiny]]></category>

		<guid isPermaLink="false">http://blog.shinylittlething.com/?p=103</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/03/06/201-shiny-colorful-iphone-wallpapers-from-flickr-artists/';
var dzone_title = '20+1 Shiny, Colorful iPhone Wallpapers from Flickr Artists';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
I litteraly crawled the flickr website to find high quality, colorful  iPhone wallpapers. All the following items in this collection are licensed under Creative Commons so you can use them freely as long as it&#8217;s not for commercial purposes. For more informations you may contact the respective authors.
Kohdai
Colors
Contact :

Tumblr profile
Flickr profile

Tom Ferris
Mac OS X
Contact :

Flickr [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/03/06/201-shiny-colorful-iphone-wallpapers-from-flickr-artists/';
var dzone_title = '20+1 Shiny, Colorful iPhone Wallpapers from Flickr Artists';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>I litteraly crawled the flickr website to find high quality, colorful  iPhone wallpapers. All the following items in this collection are licensed under Creative Commons so you can use them freely as long as it&#8217;s not for commercial purposes. For more informations you may contact the respective authors.</p>
<h2><em>Kohdai</em></h2>
<h3>Colors</h3>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-104" title="Khodai" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/3057557705_6e4c373cb8_o.jpg" alt="Colors" width="320" height="480" /><p class="wp-caption-text">Colors</p></div>
<p><em><strong>Contact :</strong></em></p>
<ul>
<li><a href="http://kstattoo.tumblr.com">Tumblr profile</a></li>
<li><a href="http://flickr.com/photos/kohdai/">Flickr profile</a></li>
</ul>
<h2><em>Tom Ferris</em></h2>
<h3>Mac OS X</h3>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-105" title="Mac OS X" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/759557990_1b8266bb27.jpg" alt="Mac OS X" width="320" height="480" /><p class="wp-caption-text">Mac OS X</p></div>
<p><em><strong>Contact :</strong></em></p>
<ul>
<li><a href="http://flickr.com/people/tomferris/">Flickr Profile</a></li>
<li><a href="http://www.ferrisphotos.com/">Web Site</a></li>
</ul>
<h2><em>Jake Vance</em></h2>
<h3>Redcircle</h3>
<div id="attachment_106" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-106" title="Redcircle" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/729442054_2955f50e18.jpg" alt="Redcircle" width="320" height="480" /><p class="wp-caption-text">Redcircle</p></div>
<h3 id="title_div729442068">Greatwave</h3>
<div id="attachment_107" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-107" title="Greatwave" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/729442068_feb79e034d.jpg" alt="Greatwave" width="320" height="480" /><p class="wp-caption-text">Greatwave</p></div>
<p><em><strong>Contact :</strong></em></p>
<ul>
<li><a href="http://flickr.com/people/minor_incident/">Flickr Profile</a></li>
</ul>
<h2><em>Craftapalooz</em></h2>
<h3>Patchwork</h3>
<div id="attachment_108" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-108" title="Patchwork" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2806418616_f29afe12fe.jpg" alt="Patchwork" width="320" height="480" /><p class="wp-caption-text">Patchwork</p></div>
<p><em><strong>Contact :</strong></em></p>
<ul>
<li><a href="http://flickr.com/photos/craftapalooza/">Flickr Profile</a></li>
<li><a href="http://craftapalooza.typepad.com/">Weblog</a></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Paul</span> <span class="family-name">Parker</span></span></span></h2>
<h3>Paul Smith iPhone Wallpaper</h3>
<div id="attachment_109" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-109" title="Paul Smith iPhone Wallpaper" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2431548260_1af8684e33.jpg" alt="Paul Smith iPhone Wallpaper" width="320" height="480" /><p class="wp-caption-text">Paul Smith iPhone Wallpaper</p></div>
<p><em><strong>Contact :</strong></em></p>
<ul>
<li><a href="http://flickr.com/people/paulieparker/">Flick Profile</a></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Koka</span> <span class="family-name">Sexton</span></span></span></h2>
<h3 id="title_div2145974552">Apple iPhone Wallpaper Serie</h3>
<div id="attachment_110" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-110" title="Apple" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2145974552_98061cb3f0.jpg" alt="Apple" width="320" height="480" /><p class="wp-caption-text">Apple</p></div>
<p style="text-align: center;">
<h3>Abstract</h3>
<h3>
<div id="attachment_116" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-116" title="Abstract" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2145977230_6b713e4872.jpg" alt="Abstract" width="320" height="480" /><p class="wp-caption-text">Abstract</p></div></h3>
<p><em><strong><span class="RealName"><span class="fn n"><span class="family-name">Contact : </span></span></span></strong></em></p>
<ul>
<li><span class="RealName"><span class="fn n"><span class="family-name"><a href="http://www.kokasexton.com/word/">Weblog</a></span></span></span></li>
<li><span class="RealName"><span class="fn n"><span class="family-name"><a href="http://www.officialiphonewallpapers.com/">iPhone wallpapers website</a></span></span></span></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Björn</span> <span class="family-name">Olsson</span></span></span></h2>
<h3><span class="RealName"><span class="fn n"><span class="family-name">Rainbow Apple</span></span></span></h3>
<p><div id="attachment_115" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-115" title="Apple" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2885192451_00455b96be.jpg" alt="Apple" width="320" height="480" /><p class="wp-caption-text">Rainbow Apple</p></div>
<p><em><strong>Contact:</strong></em></p>
<ul>
<li><a href="http://www.bjornolsson.se/mono/">Weblog</a></li>
<li><a href="http://www.bjornolsson.se/portfolio/">Portfolio</a></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Rob</span> <span class="family-name">Patrick</span></span></span></h2>
<h3 id="title_div2296176451">Neon firefly</h3>
<div id="attachment_117" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-117" title="Neon firefly" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2296176451_d67cc03322.jpg" alt="Neon firefly" width="320" height="480" /><p class="wp-caption-text">Neon firefly</p></div>
<p><em><strong>Contact: </strong></em></p>
<ul>
<li><a href="http://flickr.com/photos/alkalinezoo/">Flickr Profile</a></li>
</ul>
<h2><span class="nickname">ArtWerk</span></h2>
<h3 id="title_div3265132436">The Garden</h3>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-119" title="The Garden" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/3265132436_16c4899093.jpg" alt="The Garden" width="320" height="480" /><p class="wp-caption-text">The Garden</p></div>
<div id="attachment_120" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-120" title="Snowflake" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/3068070980_60e9575dd8.jpg" alt="Snowflake" width="320" height="480" /><p class="wp-caption-text">Snowflake</p></div>
<p><em><strong><span class="nickname">Contact :</span></strong></em></p>
<ul>
<li><a href="http://www.alphadesigner.com">Website</a></li>
<li><a href="http://blog.alphadesigner.com">Weblog</a></li>
<li><a href="http://flickr.com/people/alphadesigner/">Flickr Profile</a></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Ballookey</span> <span class="family-name">Klugeypop</span></span></span></h2>
<h3 id="title_div1565910778">Strawberry</h3>
<div id="attachment_125" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-125" title="Strawberry" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/1565910778_d36a6ea715.jpg" alt="Strawberry" width="320" height="480" /><p class="wp-caption-text">Strawberry</p></div>
<h3 id="title_div1565910942">Lucky Kitty</h3>
<div id="attachment_121" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-121" title="Lucky Kitty" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/1565910942_35de258b1d.jpg" alt="Lucky Kitty" width="320" height="480" /><p class="wp-caption-text">Lucky Kitty</p></div>
<h3 id="title_div2766774400">Nouveau Poppies</h3>
<div id="attachment_122" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-122" title="Nouveau Poppies" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2766774400_cbee26049f.jpg" alt="Nouveau Poppies" width="320" height="480" /><p class="wp-caption-text">Nouveau Poppies</p></div>
<p><em><strong>Contact: </strong></em></p>
<ul>
<li><a href="http://www.flickr.com/people/ballookey/">Flickr Profile</a></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Armin</span> <span class="family-name">Talic</span></span></span></h2>
<h3 id="title_div2544082883">Flow</h3>
<div id="attachment_126" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-126" title="Flow" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2544082883_7d6e1b5317.jpg" alt="Flow" width="320" height="480" /><p class="wp-caption-text">Flow</p></div>
<h3>Play</h3>
<div id="attachment_127" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-127" title="Play" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2544083075_2394057210.jpg" alt="Play" width="320" height="480" /><p class="wp-caption-text">Play</p></div>
<p><em><strong>Contact :</strong></em></p>
<ul>
<li><a href="http://flickr.com/people/eckofish/">Flickr Profile</a></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Ed</span> <span class="family-name">Hall</span></span></span></h2>
<h3>Harmony + Rhapsody</h3>
<div id="attachment_128" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-128" title="Harmony + Rhapsody" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/3190896323_f894e9ce0b.jpg" alt="Harmony + Rhapsody" width="320" height="480" /><p class="wp-caption-text">Harmony + Rhapsody</p></div>
<p><span class="RealName"><span class="fn n"><span class="family-name"><em><strong>Contact:</strong></em></span></span></span></p>
<ul>
<li><span class="RealName"><span class="fn n"><span class="family-name"><a href="http://flickr.com/people/eddidit/">Flickr Profile</a></span></span></span></li>
<li><span class="RealName"><span class="fn n"><span class="family-name"><a href="http://twitter.com/eddidit">Twitter Account</a></span></span></span></li>
</ul>
<h2><span class="RealName"><span class="fn n"><span class="given-name">Jeffrey &#8220;JP&#8221;</span></span></span></h2>
<h3 id="title_div2675553712">Burnt</h3>
<div id="attachment_130" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-130" title="Burnt  " src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2675553712_beca279bf8.jpg" alt="Burnt " width="320" height="480" /><p class="wp-caption-text">Burnt </p></div>
<h3 id="title_div2675553990">Grunge Orange</h3>
<div id="attachment_131" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-131" title="Grunge Orange" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/2675553990_80283df7bb.jpg" alt="Grunge Orange" width="320" height="480" /><p class="wp-caption-text">Grunge Orange</p></div>
<p><em><strong>Contact: </strong></em></p>
<ul>
<li><a href="http://flickr.com/people/jpinsd/">Flickr Profile</a></li>
<li><a href="http://jpinsd.livejournal.com/">Weblog</a></li>
</ul>
<h2>ShinyBlog iPhone Wallpaper</h2>
<h3>ShinyBlog!</h3>
<p>Yeah ! You can now promote my blog every where you go ! Completely free during launch phase ! :P</p>
<div id="attachment_132" class="wp-caption aligncenter" style="width: 330px"><img class="size-full wp-image-132" title="Shiny Blog iPhone Wallpaper" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/shinyblogiphonewp.jpg" alt="Shiny Blog iPhone Wallpaper" width="320" height="480" /><p class="wp-caption-text">Shiny Blog iPhone Wallpaper</p></div>
<p>Well ! What&#8217;s that closes this collection ! I really hope you&#8217;ve found your beloved wallpaper in this list.</p>
<p>Thanks to the Flickr artists out there to make our life shynier everyday!<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li>No Related Post</li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=gE2KtjAsGq4:a86-xZFeIFw:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=gE2KtjAsGq4:a86-xZFeIFw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=gE2KtjAsGq4:a86-xZFeIFw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=gE2KtjAsGq4:a86-xZFeIFw:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/03/06/201-shiny-colorful-iphone-wallpapers-from-flickr-artists/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/03/06/201-shiny-colorful-iphone-wallpapers-from-flickr-artists/</feedburner:origLink></item>
		<item>
		<title>8 Ajax Data Controls and Effects to Work with Tables</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/prFqtwfhw0I/</link>
		<comments>http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 13:06:52 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Collections]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[Collection]]></category>

		<category><![CDATA[data controls]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[Tables]]></category>

		<category><![CDATA[tree view]]></category>

		<category><![CDATA[Usability]]></category>

		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://blog.shinylittlething.com/?p=75</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/';
var dzone_title = '8 Ajax Data Controls and Effects to Work with Tables';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Hi fellow reader, I browsed various projects that deals with HTML tables and data control. These a neat to achieve spreadsheet like experience for your users in web projects.
1. jqGrid
by Tony Tomov
jqGrid is a plugin fro jQuery, it supports Json, XML and Javascript Array datatypes.
Features : 

Basic Search engine
In place data editing
Themes
SubGrids
Integration with jQuery UI [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/';
var dzone_title = '8 Ajax Data Controls and Effects to Work with Tables';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>Hi fellow reader, I browsed various projects that deals with HTML tables and data control. These a neat to achieve spreadsheet like experience for your users in web projects.</p>
<h3>1. jqGrid</h3>
<p>by Tony Tomov</p>
<div id="attachment_76" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-76" title="jqGrid" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/jqgrid.jpg" alt="jqGrid " width="550" /><p class="wp-caption-text">jqGrid </p></div>
<div id="attachment_77" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-77" title="jqGrid SubGrid" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/jqgrid1.jpg" alt="jqGrid SubGrid" width="550" /><p class="wp-caption-text">jqGrid SubGrid</p></div>
<p>jqGrid is a plugin fro jQuery, it supports Json, XML and Javascript Array datatypes.</p>
<p><em><strong>Features : </strong></em></p>
<ul>
<li>Basic Search engine</li>
<li>In place data editing</li>
<li>Themes</li>
<li>SubGrids</li>
<li>Integration with jQuery UI Datepicker</li>
<li>And more, just check out the demos</li>
</ul>
<p><em><strong>Ressources : </strong></em></p>
<ul>
<li><a href="http://www.trirand.com/blog/">Author&#8217;s blog</a></li>
<li><a href="http://www.trirand.com/blog/?p=132">The annoucement post of jqGrid v3.4.2</a></li>
<li><a href="http://trirand.com/jqgrid/jqgrid.html">Demos</a></li>
</ul>
<h3>2. Tablecloth</h3>
<p>by Alen Grakalic</p>
<div id="attachment_78" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-78" title="Tablecloth" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/tablecloth.jpg" alt="Tablecloth" width="550" height="143" /><p class="wp-caption-text">Tablecloth</p></div>
<p>Table cloth is a great tool to ease your users browsing wide dataset by adding different colors on their precise coordinates in the table.</p>
<p><em><strong>Features :</strong></em></p>
<ul>
<li>Lightweight</li>
<li>Unobtrusive</li>
<li>Configurable highlighting of rows and columns or both</li>
<li>Highlight on click</li>
<li>Custom CSS</li>
</ul>
<p>Ressources :</p>
<ul>
<li><a href="http://cssglobe.com/">Author&#8217;s Blog</a></li>
<li><a href="http://twitter.com/cssglobe">Twitter account</a></li>
<li><a href="http://cssglobe.com/lab/tablecloth/">Infos &amp; Demo page</a></li>
</ul>
<h3>3. YUI Library DataTable Control</h3>
<p>by Yahoo! Inc</p>
<div id="attachment_83" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-83" title="yui-datatable-control" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/yui-datatable-control.jpg" alt="YUI DataTable Control" width="550" /><p class="wp-caption-text">YUI DataTable Control</p></div>
<p>Sample Data :</p>
<pre>YAHOO.example.Data = {
    bookorders: [
        {id:"po-0167", date:new Date(1980, 2, 24), quantity:1, amount:4, title:"A Book About Nothing"},
        {id:"po-0783", date:new Date("January 3, 1983"), quantity:null, amount:12.12345, title:"The Meaning of Life"},
        {id:"po-0297", date:new Date(1978, 11, 12), quantity:12, amount:1.25, title:"This Book Was Meant to Be Read Aloud"},
        {id:"po-1482", date:new Date("March 11, 1985"), quantity:6, amount:3.5, title:"Read Me Twice"}
    ]
}</pre>
<p>The All in One great DataControl component for YUI Library.</p>
<p>The DataTable control provides a simple yet powerful API to display screen-reader accessible tabular data on a web page. Notable features include sortable columns, pagination, scrolling, row selection, resizeable columns, and inline cell editing.</p>
<p><em><strong>Features : </strong></em></p>
<ul>
<li>Column Keys Usage</li>
<li>Progressive Enhancement of Markup</li>
<li>Accessibility Features</li>
<li>Custom Cell Formatting</li>
<li>Nested Column Headers</li>
<li>Basic Column Sorting</li>
<li>Advanced Column Sorting</li>
<li>Pagination</li>
<li>Scrolling</li>
<li>Adjusting the Render Loop Size</li>
<li>Row and Cell Selection</li>
<li>Column Selection</li>
<li>Row, Cell and Column Highlighting</li>
<li>More Column APIs</li>
<li>Inline Cell Editing</li>
<li><a href="http://developer.yahoo.com/yui/examples/datatable/index.html">And a lot more in examples</a></li>
</ul>
<p><em><strong>Ressources :</strong></em></p>
<ul>
<li><a href="http://developer.yahoo.com/yui/datatable/">Project Page</a></li>
<li><a href="http://developer.yahoo.com/yui/docs/module_datatable.html">API Documentation </a></li>
<li><a href="http://developer.yahoo.com/yui/examples/datatable/index.html">Examples and Demos Page</a></li>
</ul>
<h3>4. FlexiGrid for jQuery</h3>
<p>by Paulo P.Marinas</p>
<p style="text-align: center;">
<div id="attachment_85" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-85" title="flexigrid" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/flexigrid.jpg" alt="FlexiGrid" width="550" /><p class="wp-caption-text">FlexiGrid</p></div>
<p>FlexiGrid is a lightweight but rich data grid with resizable columns and a scrolling data to match the headers, plus an ability to connect to an xml based data source using Ajax to load the content. Similar in concept with the Ext Grid only its pure jQuery love, which makes it light weight and follows the jQuery mantra of running with the least amount of configuration.</p>
<p><em><strong>Features :</strong></em></p>
<ul>
<li>Resizable columns</li>
<li>Resizable height and width</li>
<li>Sortable column headers</li>
<li>Cool theme</li>
<li>Can convert an ordinary table</li>
<li>Ability to connect to an ajax data source (XML and JSON)</li>
<li>Paging</li>
<li>Show/hide columns</li>
<li>Toolbar</li>
<li>Search</li>
<li>Accessible API</li>
</ul>
<p><em><strong>Ressources :</strong></em></p>
<ul>
<li><a href="http://www.flexigrid.info/">Project Page &amp; demos</a></li>
<li><a href="http://groups.google.com/group/flexigrid/?pli=1">FlexiGrid Dedicated Google Group</a></li>
</ul>
<h3>5. Preloading Data with Ajax and JSON</h3>
<p>by Ryan Campbell</p>
<div id="attachment_86" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-86" title="preloading-data-with-ajax-and-json" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/preloading-data-with-ajax-and-json.jpg" alt="Demo Page" width="550" height="377" /><p class="wp-caption-text">Demo Page</p></div>
<p>An Old but extensive and still good actual that describe how to preload your data to enhance your application usability.</p>
<p><em><strong>Ressources :</strong></em></p>
<ul>
<li><a href="http://particletree.com/features/preloading-data-with-ajax-and-json/">Preloading Data with Ajax and JSON Article</a></li>
<li><a href="http://particletree.com/examples/paging/">Demo Page</a></li>
</ul>
<h3>6. dhtmlxGrid</h3>
<p>by DHTMLX Ltd.</p>
<div id="attachment_87" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-87" title="dhtmlxgrid" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/dhtmlxgrid.jpg" alt="dhtmlxGrid" width="550" height="284" /><p class="wp-caption-text">dhtmlxGrid</p></div>
<p>dhtmlxGrid is an Ajax-enabled JavaScript grid control with cutting-edge functionality, powerful data binding, and excellent performance with large datasets. The gridview component is easy-to-use and provides great flexibility due to its rich client-side API. dhtmlxGrid supports different datasources, including XML, JSON, CSV, JS array, and HTML table. Since v1.6 grid data can be loaded from custom XML format.</p>
<p><em><strong>Editions :</strong></em></p>
<ul>
<li>Standard - available for free download (to use under GPL).</li>
<li>Professional - contains additional features (with examples) which are not present in Standard edition. Delivered under Commercial and Enterprise licenses.</li>
</ul>
<p><em><strong>Features Pro Edition :</strong></em></p>
<ul>
<li>Loading XML from String</li>
<li>Frozen columns</li>
<li>Smart Rendering</li>
<li>Paginal Output extension</li>
<li>Merged cells</li>
<li>Simultanious Update of Database (dhtmlxDataProcessor)</li>
<li>Clipboard support</li>
<li>Export\Import from CSV</li>
</ul>
<p><em><strong>Ressources :</strong></em></p>
<ul>
<li><a href="http://www.dhtmlx.com/docs/products/dhtmlxGrid/">Project Page &amp; Demo</a></li>
</ul>
<h3>7. treeTable</h3>
<p>by Ludo van den Boom</p>
<div id="attachment_89" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-89" title="acts_as_tree_table" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/acts_as_tree_table_1.jpg" alt="ActsAsTreeTable - Displaying a directory structure." width="550" height="383" /><p class="wp-caption-text">ActsAsTreeTable - Displaying a directory structure.</p></div>
<p>treeTable is a plugin for jQuery, the &#8216;Write Less, Do More, JavaScript Library&#8217;. With this plugin you can display a tree in a table, i.e. a directory structure or a nested list. Why not use a list, you say? Because lists are great for displaying a tree, and tables are not. Oh wait, but this plugin uses tables, doesn&#8217;t it? Yes. Why do I use a table to display a list? Because I need multiple columns to display additional data besides the tree.</p>
<p><em><strong>Features:</strong></em></p>
<ul>
<li>Unobtrusive</li>
<li>Branches collapsing and expanding</li>
<li>Unlimited tree depth</li>
</ul>
<p><em><strong>Ressources:</strong></em></p>
<ul>
<li><a href="http://blog.cubicphuse.nl/2008/11/12/jquery-treetable-2-0">Project Documentation &amp; Demos</a></li>
<li><a href="http://github.com/ludo/jquery-plugins/tree/master/acts_as_tree_table">Project on GitHub</a></li>
<li><a href="http://blog.cubicphuse.nl/">Author&#8217;s blog</a></li>
</ul>
<h3>8. Ext.ux.Livegrid</h3>
<p>by Thorsten Suckow-Homberg</p>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-92" title="Livegrid" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/livegrid.jpg" alt="Livegrid Drag &amp; drop" width="550" height="404" /><p class="wp-caption-text">Livegrid Drag &amp; drop</p></div>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 560px"><img class="size-full wp-image-93" title="Livegrid" src="http://blog.shinylittlething.com/wp-content/uploads/2009/03/livegrid1.jpg" alt="Livegrid Sorting and Options" width="550" height="380" /><p class="wp-caption-text">Livegrid Sorting and Options</p></div>
<p>The Ext.ux.Livegrid component is a user extension that&#8217;s build upon the Ext JS Framework and more specificaly extends Ext.grid.GridPanel. The component allows to read chunks of data from an underlying storage (common use case: a database) without the need of paging. Means: You can virtually display and scroll through a large amount of data - the grid will only render the data that comes into the viewport and will request new data for displaying if the user reached a specific cursor position/row index.</p>
<p><em><strong>Ressources:</strong></em></p>
<ul>
<li><a href="http://www.ext-livegrid.com">Project Page</a></li>
<li><a href="http://www.siteartwork.de/livegrid_demo/">Demos </a></li>
<li><a href="http://www.siteartwork.de/">Author&#8217;s blog</a></li>
<li><a href="http://twitter.com/ThorstenSuckow">Twitter Account (DE)</a></li>
</ul>
<p><em><strong>See Also:</strong></em></p>
<ul>
<li><a href="http://extjs.com/deploy/dev/examples/grid/paging.html">Ext.grid.GridPanel</a></li>
</ul>
<p>Well , that closes the collection! I hope it will help you make the right choice for you next and current projects !<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/" title="Enabling Dynamic Plugin Support for your JavaScript Application">Enabling Dynamic Plugin Support for your JavaScript Application</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/" title="7 jQuery Plugins to Really Enhance Users Experience">7 jQuery Plugins to Really Enhance Users Experience</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/" title="6 Image Manipulation Plugins for jQuery You Should Know About">6 Image Manipulation Plugins for jQuery You Should Know About</a></li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=prFqtwfhw0I:jyjCfjYmTIo:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=prFqtwfhw0I:jyjCfjYmTIo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=prFqtwfhw0I:jyjCfjYmTIo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=prFqtwfhw0I:jyjCfjYmTIo:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/</feedburner:origLink></item>
		<item>
		<title>Fork me, I’m Famous</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/EvwzTHezk8o/</link>
		<comments>http://blog.shinylittlething.com/2009/02/25/fork-me-im-famous/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 09:59:22 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Ruby]]></category>

		<category><![CDATA[capistrano]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/?p=27</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/25/fork-me-im-famous/';
var dzone_title = 'Fork me, I&#8217;m Famous';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Jamis Buck announced it yesterday :
&#8220;I’m ceasing development on SQLite/Ruby, SQLite3/Ruby, Net::SSH (and related libs, Net::SFTP, Net::SCP, etc.) and Capistrano. I will no longer be accepting patches, bug reports, support requests, feature requests, or general emails related to any of these projects. For Capistrano, I will continue to follow the mailing list, and might appear [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/25/fork-me-im-famous/';
var dzone_title = 'Fork me, I&#8217;m Famous';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p><a href="http://weblog.jamisbuck.org/">Jamis Buck</a> <a href="http://weblog.jamisbuck.org/2009/2/25/net-ssh-capistrano-and-saying-goodbye">announced</a> it yesterday :</p>
<p style="margin-left: 40px;"><em>&#8220;I’m ceasing development on </em><a href="http://github.com/jamis/sqlite-ruby/tree/master"><em>SQLite/Ruby</em></a><em>, </em><a href="http://github.com/jamis/sqlite3-ruby/tree/master"><em>SQLite3/Ruby</em></a><em>, </em><a href="http://github.com/jamis/net-ssh/tree"><em>Net::SSH</em></a><em> (and related libs, </em><a href="http://github.com/jamis/net-sftp/tree"><em>Net::SFTP</em></a><em>, </em><a href="http://github.com/jamis/net-scp/tree"><em>Net::SCP</em></a><em>, etc.) and </em><a href="http://github.com/jamis/capistrano/tree"><em>Capistrano</em></a><em>. I will no longer be accepting patches, bug reports, support requests, feature requests, or general emails related to any of these projects. For Capistrano, I will continue to follow the mailing list, and might appear in the #capistrano irc channel from time to time, but I am no longer the maintainer of these projects. I will continue to host the capify.org site and wiki for as long as they are of use to people.&#8221;</em></p>
<p>He is ceasing his popular Ruby projects and in my humble opinion, these need forks at least to maintain the code up-to-date.</p>
<p style="margin-left: 40px;"><em>&#8220;That’s entirely up to the community. If you have a neat idea for any of these, please feel free to fork the project on GitHub (see my </em><a href="http://github.com/jamis"><em>profile page</em></a><em> for the links to the individual projects) and release updates on your own schedule. If no one steps forward, that’s fine—I’m not asking for volunteers. But if someone feels passionately that any of these are not “finished”, and has ideas for how they could be further improved, I will not stand in the way.&#8221;</em></p>
<p>Despite my will to do so, I am still at the learning stage with Ruby, I cannot handle this for now, yet. The best I can do is to pass the word around the world.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li>No Related Post</li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=EvwzTHezk8o:i-aD_gVtPkk:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=EvwzTHezk8o:i-aD_gVtPkk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=EvwzTHezk8o:i-aD_gVtPkk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=EvwzTHezk8o:i-aD_gVtPkk:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/02/25/fork-me-im-famous/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/02/25/fork-me-im-famous/</feedburner:origLink></item>
		<item>
		<title>7 jQuery Plugins to Really Enhance Users Experience</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/EyBqSPH1pnw/</link>
		<comments>http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 15:28:42 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Collections]]></category>

		<category><![CDATA[Web-design]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[plugins]]></category>

		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/wordpress/?p=23</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/';
var dzone_title = '7 jQuery Plugins to Really Enhance Users Experience';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Hi fellow reader of the Shiny Blog, today I am tired of seeing this blog posts schema : &#8220;[insert random number] [insert random subject] YOU WOULD LITERALY DIE FOR&#8221;.  We have an expression for this in France : &#8220;On dit qu&#8217;il y a à boire et à manger là dedans&#8221;. This approximately means that you [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/';
var dzone_title = '7 jQuery Plugins to Really Enhance Users Experience';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>Hi fellow reader of the Shiny Blog, today I am tired of seeing this blog posts schema : <em>&#8220;[insert random number] [insert random subject] YOU WOULD LITERALY DIE FOR&#8221;</em>.  We have an expression for this in France : <em>&#8220;On dit qu&#8217;il y a à boire et à manger là dedans&#8221;. </em>This approximately means that you will actually have to filter the good from the junk yourself.</p>
<p>So, today I&#8217;m bringing you only high quality jQuery plugins that, and <strong>I know it</strong>, will help you to enchance your user&#8217;s experience.</p>
<p>I might not be aware of all the great jquery plugins out there, so as usual, <strong>if you feel that I ommited your favorite plugin please, Oh please, share your knowledge with us by leaving a comment</strong>!</p>
<p>Note: If you feel that these plugins look and feel seems related to Mac OS X then, it&#8217;s not a coincidence.</p>
<h3>iconDock</h3>
<p><em>by Isaac Roca</em></p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/osx_plugins_icondock.jpg" border="2" alt="iconDock" width="412" height="124" /></p>
<p>iconDock is a jQuery JavaScript library plugin that allows you to create a menu on your web like the Mac OS X operating system dock effect one.</p>
<p>It is based on the Google X menu, an approach that Google did to create this effect on the web.</p>
<p><em><strong>Ressources : </strong></em></p>
<ul>
<li><a href="http://icon.cat/software/iconDock">iconDock jQuery Plugin Wiki</a></li>
<li><a href="http://icon.cat/software/iconDock/0.8b/dock.html">Examples</a></li>
</ul>
<h3>Simple Controls Gallery</h3>
<p><em>by Dynamic Drive</em></p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/osx2.jpg" border="2" alt="Simple Controls Gallery" width="410" height="275" /></p>
<p>Want to display images as an automatic slideshow that can also be explicitly played or paused by the user?</p>
<p>Simple Controls Gallery rotates and displays an image by fading it into view over the previous one, with navigation controls that pop up when the mouse rolls over the Gallery. Lets take a look at the script&#8217;s set of features:</p>
<ul>
<li>Displays images either as an automatic or manual slideshow, with the image faded into view over the previous. A Navigational Panel slides up when the mouse rolls over the gallery to play, pause, or step through to a specific image within the gallery.</li>
<li>In automatic mode, set the number of cycles before the script stops rotating.</li>
<li>Each slide consists of an image that can be hyperlinked.</li>
<li>Each slide can have a description associated with it. When defined, a Description Panel slides down from the top of the gallery showing the description.</li>
<li>The gallery supports persistence of the last viewed image via session cookies, so going away then coming back to the gallery calls up the last viewed image within a browser session.</li>
</ul>
<p>The images within the Gallery should all be the same size for best results.</p>
<p><em><strong>Ressources :</strong></em></p>
<ul>
<li><a href="http://www.dynamicdrive.com/dynamicindex4/simplegallery.htm">Simple Controls Gallery Download &amp; Demos</a></li>
</ul>
<h3>jGrowl</h3>
<p><em>by Stan Lemon</em></p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/osx3.jpg" border="2" alt="jGrowl" width="417" height="300" /></p>
<p>jGrowl is a jQuery plugin that raises unobtrusive messages within the browser, similar to the way that OS X&#8217;s Growl Framework works.</p>
<p><em><strong>Ressources :</strong></em></p>
<ul>
<li><a href="http://stanlemon.net/projects/jgrowl.html">jGrowl info &amp; demos</a></li>
</ul>
<h3>Flip!</h3>
<p><em>by Luca Manno</em> (<a href="http://www.twitter.com/roncioso">@roncioso</a>)</p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/enhance_1.jpg" border="2" alt="Flip!" width="517" height="265" /></p>
<p>Flip is a plugin for jquery that will flip your elements in four directions.</p>
<p><strong></strong></p>
<p><strong>Browser Compatibilty</strong></p>
<ul>
<li>Firefox 2+ (Linux, Windows, Mac OSX)</li>
<li>Internet Explorer 6+ (IE8 beta2 included, yeah)</li>
<li>Safari (Mac OSX, Windows)</li>
<li>Google Chrome (Windows)</li>
<li>Opera (Linux, Windows)</li>
</ul>
<p><em><strong>Ressources : </strong></em></p>
<ul>
<li><a href="http://lab.smashup.it/flip/">Flip jQuery plugin info &amp; demo</a></li>
</ul>
<h3>seekAttention</h3>
<p><em>by James Padolsey</em> (@<a href="http://twitter.com/jamespadolsey">jamespadolsey</a>)</p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/enhance_2.jpg" border="2" alt="seekAttention" width="455" height="376" /></p>
<p>The &#8220;seekAttention&#8221; plugin gracefully get&#8217;s your users attention by fading out a definable area but leaving the target element (the element which is seeking attention) un-faded and thereby focusing the users attention on it.</p>
<p>The definable area (to be called &#8220;container&#8221; from this point forward) can be the entire page or any element which surrounds the target element and the colour which overlays the container can also be defined by you.</p>
<p><em><strong>Ressources : </strong></em></p>
<ul>
<li><a href="http://enhance.qd-creative.co.uk/demo/seekAttention/">seekAttention jQuery plugin infos &amp; demos</a></li>
<li><a href="http://enhance.qd-creative.co.uk/">James blog </a></li>
</ul>
<h3>FancyBox</h3>
<p><em>by Janis Skarnelis</em></p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/enhance_3.jpg" border="2" alt="FancyBox" width="546" height="417" /></p>
<p>Simple jQuery plugin for fancy image zooming</p>
<p>Features:</p>
<ul>
<li>Automatically scales large images to fit in window</li>
<li>Adds a nice drop shadow under the zoomed item</li>
<li>Groups related items and adds navigation through them (uses preloading)</li>
<li>Can display images, inline and iframed content</li>
<li>Customizable through settings and CSS</li>
</ul>
<p><em><strong>Ressources : </strong></em></p>
<ul>
<li><a href="http://fancy.klade.lv/">FancyBox infos &amp; demos</a></li>
</ul>
<h3>Select-to-slider</h3>
<p><em>by Scott Jehl</em></p>
<p><img src="/files/Image/jquery_plugins_for_an_os_x_look_and_feel/enhance_4.jpg" border="2" alt="" width="434" height="142" /></p>
<p>The purpose of this plugin is to allow for the jQuery UI Slider plugin to be generated using progressive enhancement. The plugin scrapes the data from a select element and generates a jQuery UI Slider in its place, acting as a proxy to the select element (regardless of whether it is still visible, or hidden from the user). This means you can use the jQuery Slider plugin alongside other input elements in a form and submit or serialize the form as if the slider is not even there. This also allows the slider to work with our without javascript since the select element can be used if the slider is unavailable.</p>
<p><em><strong>Ressources : </strong></em></p>
<ul>
<li><a href="http://www.filamentgroup.com/lab/update_jquery_ui_16_slider_from_a_select_element/">Select-to-slider jQuery plugin infos &amp; demos</a></li>
</ul>
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/" title="Enabling Dynamic Plugin Support for your JavaScript Application">Enabling Dynamic Plugin Support for your JavaScript Application</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/" title="6 Image Manipulation Plugins for jQuery You Should Know About">6 Image Manipulation Plugins for jQuery You Should Know About</a></li>
<li><a href="http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/" title="8 Ajax Data Controls and Effects to Work with Tables">8 Ajax Data Controls and Effects to Work with Tables</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/" title="Essential Web-Based tools for JavaScript Developers">Essential Web-Based tools for JavaScript Developers</a></li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=EyBqSPH1pnw:YAYcOTBXRyQ:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=EyBqSPH1pnw:YAYcOTBXRyQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=EyBqSPH1pnw:YAYcOTBXRyQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=EyBqSPH1pnw:YAYcOTBXRyQ:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/</feedburner:origLink></item>
		<item>
		<title>Essential Web-Based tools for JavaScript Developers</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/gZyakyj-b28/</link>
		<comments>http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 23:48:57 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Collections]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Online]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/wordpress/?p=19</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/';
var dzone_title = 'Essential Web-Based tools for JavaScript Developers';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Here is a list of extremely handy online tools that you can&#8217;t live without as a JavaScript developper. I found myself using them extensively over the last years while pesting about lack of clue about them before. Maybe you know a part or all the tools presented here, but if a single reader find a [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/';
var dzone_title = 'Essential Web-Based tools for JavaScript Developers';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>Here is a list of extremely handy online tools that you can&#8217;t live without as a JavaScript developper. I found myself using them extensively over the last years while pesting about lack of clue about them before. Maybe you know a part or all the tools presented here, but if a single reader find a new tool I will consider my task completed.</p>
<p>I might not be aware of every tools around here, so <strong>if you know any online tools that you find handy or interesting please, I urge you to share it with us by leaving a comment on this post! </strong></p>
<h3>Javascript beautifier</h3>
<p><em>by Einar Lielmanis</em></p>
<p>I rarely used this one. However John Resig made <a href="http://ejohn.org/blog/genetic-ab-testing-with-javascript/">an interesting use</a> of it to reverse engineer a Genetic split testing algorithm written in javascript.</p>
<p><em><strong>Source :</strong></em></p>
<ul>
<li><a href="http://jsbeautifier.org/">Javascript beautifier</a></li>
</ul>
<h3>JavaScript Regex Generator</h3>
<p><em>by Tavs Dokkedahl</em></p>
<p>If you are not familiar with Regular Expressions the following tool is a good helper as well as an awesome way to learn them!</p>
<p><em><strong>Source : </strong></em></p>
<ul>
<li><a href="http://www.jslab.dk/tools.regex.php">JavaScript Regex Generator</a></li>
</ul>
<h3>JSLint</h3>
<p><em>by Douglas Crockford</em></p>
<p><em>&#8220;JSLint is a JavaScript program that looks for problems in JavaScript programs.&#8221; </em></p>
<p>This quote from the documentation say it all. This is the most complete online javascript &#8220;validator&#8221;. It comes with an heavy amount of options to satisfiy all you posible needs.</p>
<p><strong> Source : </strong></p>
<ul>
<li><a href="http://www.jslint.com/">JSLint</a></li>
</ul>
<h3>Javascript Compression Tools</h3>
<p>The following site brought to us by Vance Lucas offers both, Minification and Packing for your javascript files. Those methods respectively created by Douglas Crockford and Dean Edwards are widely used now that the client side exprerience revolution as become more and more important, javascript libraries too, increased their weight. To save your bandwidth and your users one, please, compress your javascripts !</p>
<p>Update : This tool will also combine multiple uploaded files into one to save HTTP requests as well.</p>
<p><em><strong>Sources :</strong></em></p>
<ul>
<li><a href="http://dean.edwards.name/packer/">Packer by Dean Edwards</a></li>
<li><a href="http://jscompress.com/">Minify online on Vance Lucas site</a></li>
</ul>
<p>To finish this article I would like to thank all these people for giving us such great applications!<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/" title="Enabling Dynamic Plugin Support for your JavaScript Application">Enabling Dynamic Plugin Support for your JavaScript Application</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/" title="7 jQuery Plugins to Really Enhance Users Experience">7 jQuery Plugins to Really Enhance Users Experience</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/" title="6 Image Manipulation Plugins for jQuery You Should Know About">6 Image Manipulation Plugins for jQuery You Should Know About</a></li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=gZyakyj-b28:FENBvjuwsUU:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=gZyakyj-b28:FENBvjuwsUU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=gZyakyj-b28:FENBvjuwsUU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=gZyakyj-b28:FENBvjuwsUU:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/</feedburner:origLink></item>
		<item>
		<title>Online Tools for Web Designers, The essential List</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/SFh08UjnGNk/</link>
		<comments>http://blog.shinylittlething.com/2009/02/20/online-tools-for-web-designers-the-essential-list/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 17:18:17 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Collections]]></category>

		<category><![CDATA[Web-design]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/wordpress/?p=17</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/20/online-tools-for-web-designers-the-essential-list/';
var dzone_title = 'Online Tools for Web Designers, The essential List';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
1. Squidfingers / Patterns

Set of 158 seamless background patterns free for download!
2. COLOURlovers

Find design inspiration with thousands of palettes and color schemes to fall in love with. Influence color trends by rating, commenting and sharing.
3. Typetester

The Typetester is an online application for comparison of the fonts for the screen. Its primary role is to make [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/20/online-tools-for-web-designers-the-essential-list/';
var dzone_title = 'Online Tools for Web Designers, The essential List';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<h3><a href="http://www.squidfingers.com/patterns/1/">1. Squidfingers / Patterns</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/Squidfingers%20-%20Patterns_1235146631078.jpg" border="2" alt="Squidfingers / Patterns" width="550" height="387" /></p>
<p>Set of 158 seamless <a type="amzn">background patterns</a> free for download!</p>
<h3><a href="http://www.colourlovers.com">2. COLOURlovers</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/COLOURlovers%20-%20Palette_1235146722228.jpg" border="2" alt="COULOURlovers" width="550" height="445" /></p>
<p>Find design inspiration with thousands of palettes and <a type="amzn">color schemes</a> to fall in love with. Influence color trends by rating, commenting and sharing.</p>
<h3><a href="http://www.typetester.org/">3. Typetester</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/Typetester%20-%20Compare%20fonts%20for%20the%20screen_1235146749243.jpg" border="2" alt="The Typetester" width="550" height="1261" /></p>
<p>The Typetester is an online application for comparison of the <a type="amzn">fonts</a> for the screen. Its primary role is to make web designer&#8217;s life easier.</p>
<h3><a href="http://colorschemedesigner.com/">4. Color Scheme Designer 3</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/Color%20Scheme%20Designer%203_1235146822844.jpg" border="2" alt="Color Scheme Designer 3" width="550" height="398" /></p>
<h1><a href="http://favikon.com/">5. Favikon</a></h1>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/favikon_1235146914934.jpg" border="2" alt="Favikon" width="550" height="701" /></p>
<p>Upload images, crop them, and create <a type="amzn">favicons</a> for free!</p>
<h3><a href="http://www.ajaxload.info/">6. AjaxLoad</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/Ajaxload%20-%20Ajax%20loading%20gif%20generator_1235148202393.jpg" border="2" alt="AjaxLoad" width="550" height="275" /></p>
<p><a type="amzn">Ajax</a> loading gif generator.</p>
<h3><a href="http://fontstruct.fontshop.com/">7. FontStruct</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/FontStruct%20%7C%20Build,%20Share,%20Download%20Fonts_1235149379157.jpg" border="2" alt="" width="550" height="503" /></p>
<p>Build, Share, Download Fonts the social way.</p>
<h3><a href="http://bgpatterns.com/">8. Tiled backgrounds designer</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/bgpatterns.jpg" border="2" alt="bgpatterns" width="550" height="336" /></p>
<p>Just small useful tool to create patterns. Experiment with pictures, colors, <a type="amzn">textures</a> and transparency to get best result.</p>
<h3><a href="http://www.lipsum.com/">9. Lipsum</a></h3>
<p><img src="http://blog.shinylittlething.com.nyud.net/files/Image/Online%20Tools%20for%20Web%20Designers%20-%20The%20essential%20List/Lorem%20Ipsum.jpg" border="2" alt="Lipsum" width="550" height="544" /></p>
<p>Lipsum generator<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li>No Related Post</li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=SFh08UjnGNk:5ksFobLtFy0:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=SFh08UjnGNk:5ksFobLtFy0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=SFh08UjnGNk:5ksFobLtFy0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=SFh08UjnGNk:5ksFobLtFy0:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/02/20/online-tools-for-web-designers-the-essential-list/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/02/20/online-tools-for-web-designers-the-essential-list/</feedburner:origLink></item>
		<item>
		<title>6 Image Manipulation Plugins for jQuery You Should Know About</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/Q4-ZSU3MOQY/</link>
		<comments>http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 15:00:13 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[Collections]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[jQuery]]></category>

		<category><![CDATA[image]]></category>

		<category><![CDATA[manipulation]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/wordpress/?p=11</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/';
var dzone_title = '6 Image Manipulation Plugins for jQuery You Should Know About';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Hi, In the past few months, I bookmarked some interesting jQuery plugins or usages to deal with image manipulation, editing or effects. Today I&#8217;m sharing this list with you.
1. jQZoom Evolution
JQZoom is a javascript image magnifier built at the top of the popular jQuery javascript framework.jQzoom is a great and a really easy to use [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/';
var dzone_title = '6 Image Manipulation Plugins for jQuery You Should Know About';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p class="introduction">Hi, In the past few months, I bookmarked some interesting <strong>jQuery</strong> plugins or usages to deal with <strong>image manipulation</strong>, editing or effects. Today I&#8217;m sharing this list with you.</p>
<h2>1. jQZoom Evolution</h2>
<p>JQZoom is a javascript image <strong>magnifier</strong> built at the top of the popular jQuery javascript framework.jQzoom is a great and a really easy to use script to <strong>magnify</strong> what you want.</p>
<p><a href="http://www.mind-projects.it/projects/jqzoom/"><img src="/files/Image/_1235132970431.jpg" alt="" width="568" height="301" /></a></p>
<p><a href="http://www.mind-projects.it/projects/jqzoom/"><strong>Visit JQZoom</strong></a></p>
<h2>2. InnerFade</h2>
<p>InnerFade is a small plugin for the jQuery-JavaScript-Library. It&#8217;s designed to fade you any element inside a container in and out.</p>
<p>These elements could be anything you want, e.g. images, list-items, divs. Simply produce your own slideshow for your portfolio gallery or advertisings. Create a newsticker or do an animation.</p>
<p><a href="http://medienfreunde.com/lab/innerfade/"><img src="/files/Image/InnerFade%20with%20jquery_1235133607590.jpg" alt="" width="550" height="190" /></a></p>
<p><a href="http://medienfreunde.com/lab/innerfade/"><strong>Visit InnerFade</strong></a></p>
<h2>3. Wilq32.RotateImage</h2>
<p>JQuery plugin to rotate images made in pure Javascript + HTML5 Canvas element</p>
<p><object width="425" height="344" data="http://www.youtube.com/v/bXIyD9ByVUY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=pl&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash"><param name="src" value="http://www.youtube.com/v/bXIyD9ByVUY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=pl&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p><a href="http://wilq32.googlepages.com/wilq32.rollimage222"><strong>Visit Wilq32.RotateImage</strong></a></p>
<h2>4. Jcrop</h2>
<p>Jcrop is the quick and easy way to add image cropping functionality to your web application. It combines the ease-of-use of a typical jQuery plugin with a powerful cross-platform DHTML cropping engine that is faithful to familiar desktop graphics applications.</p>
<p><a href="http://deepliquid.com/projects/Jcrop/"><img src="/files/Image/_1235134757211.jpg" alt="Jcrop" width="465" height="215" /></a></p>
<p><a href="http://deepliquid.com/projects/Jcrop/"><strong>Visit Jcrop</strong></a></p>
<h2>5. maxImage</h2>
<p>This plugin will resize and scale targeted images to their max width according to the browser and some simple specs.</p>
<pre>// Example usage
$(document).ready(function(){
  $('img.widthmaximage').maxImage({
    verticalOffset: 91,
    horizontalOffset: 490,
    maxFollows: 'width'
  });
});</pre>
<p><a href="http://www.aaronvanderzwan.com/maximage/"><strong>Visit maxImage</strong></a></p>
<h2>6. jParallax</h2>
<p>jParallax turns a selected element into a &#8216;window&#8217;, or viewport, and all its children into absolutely positioned layers that can be seen through the viewport. These layers move in response to the mouse, and, depending on their dimensions (and options for layer initialisation), they move by different amounts, in a parallaxy kind of way.</p>
<p><a href="http://webdev.stephband.info/parallax.html"><img src="/files/Image/webdev.stephband.info_1235141658274.jpg" alt="" width="547" height="205" /></a></p>
<p><a href="http://webdev.stephband.info/parallax.html"><strong>Visit jParallax</strong></a></p>
<p>If you think I ommited any interresting <strong>jQuery Image plugin</strong> please feel free to leave it in the comments section !<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://blog.shinylittlething.com/2009/03/10/enabling-dynamic-plugin-support-for-your-javascript-application/" title="Enabling Dynamic Plugin Support for your JavaScript Application">Enabling Dynamic Plugin Support for your JavaScript Application</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/24/jquery-plugins-to-enhance-users-experience/" title="7 jQuery Plugins to Really Enhance Users Experience">7 jQuery Plugins to Really Enhance Users Experience</a></li>
<li><a href="http://blog.shinylittlething.com/2009/03/04/8-ajax-data-controls-and-effects-to-work-with-tables/" title="8 Ajax Data Controls and Effects to Work with Tables">8 Ajax Data Controls and Effects to Work with Tables</a></li>
<li><a href="http://blog.shinylittlething.com/2009/02/23/essential-web-based-tools-for-javascript-developers/" title="Essential Web-Based tools for JavaScript Developers">Essential Web-Based tools for JavaScript Developers</a></li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=Q4-ZSU3MOQY:CEdp7DOA6ws:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=Q4-ZSU3MOQY:CEdp7DOA6ws:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=Q4-ZSU3MOQY:CEdp7DOA6ws:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=Q4-ZSU3MOQY:CEdp7DOA6ws:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/02/20/image-manipulation-jquery-plugins/</feedburner:origLink></item>
		<item>
		<title>I know now a dead language</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/fGkYzsTRafo/</link>
		<comments>http://blog.shinylittlething.com/2009/02/15/i-know-now-a-dead-language/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 11:24:37 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[MySelf]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[asp]]></category>

		<category><![CDATA[dead]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/wordpress/?p=9</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/15/i-know-now-a-dead-language/';
var dzone_title = 'I know now a dead language';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
As Ryan Stemkoski recently stated in a blog post, Microsoft ASP is now dead.
Thanks to my extremely sharpened sense in detecting living-dead programming languages, I switched to PHP about seven years ago.
Related Posts

No Related Post

]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/02/15/i-know-now-a-dead-language/';
var dzone_title = 'I know now a dead language';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p>As Ryan Stemkoski recently stated in a <a href="http://www.stemkoski.com/asp-is-dead-microsoft-slit-asps-throat-and-left-it-to-bleed-out/ ">blog post</a>, Microsoft ASP is now dead.</p>
<p>Thanks to my extremely sharpened sense in detecting living-dead programming languages, I switched to PHP about seven years ago.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li>No Related Post</li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=fGkYzsTRafo:-d1Jokf8O4c:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=fGkYzsTRafo:-d1Jokf8O4c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=fGkYzsTRafo:-d1Jokf8O4c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=fGkYzsTRafo:-d1Jokf8O4c:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/02/15/i-know-now-a-dead-language/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/02/15/i-know-now-a-dead-language/</feedburner:origLink></item>
		<item>
		<title>10 Years of programming</title>
		<link>http://feedproxy.google.com/~r/Moblurorg/~3/WSOBwlpavSA/</link>
		<comments>http://blog.shinylittlething.com/2009/01/22/10-years-of-programming/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 11:05:39 +0000</pubDate>
		<dc:creator>Nicolas Crovatti</dc:creator>
		
		<category><![CDATA[MySelf]]></category>

		<category><![CDATA[anniversary]]></category>

		<category><![CDATA[Nicolas Crovatti]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://wp.shinylittlething.com/wordpress/?p=3</guid>
		<description><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/01/22/10-years-of-programming/';
var dzone_title = '10 Years of programming';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
Oh, hi&#8230; Let me introduce myself. My name is Nicolas Crovatti, I am a self taught developer and easily distracted by shiny things. This site, is my very own Shiny Thing and distracts me from my other activities. A shiny thing in my opinion ranges in order of importance from anything to new programming languages [...]]]></description>
			<content:encoded><![CDATA[<div style="position:relative; width: 100%; padding: 0 0 30px 0;"><div style="position: absolute; bottom: 10px; right:115px; width: 42px;"><script type="text/javascript">
<!--
var dzone_url = 'http://blog.shinylittlething.com/2009/01/22/10-years-of-programming/';
var dzone_title = '10 Years of programming';
var dzone_blurb = '';
var dzone_style = '2';
//-->
</script>
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> 
</div>
<p class="introduction">Oh, hi&#8230; Let me introduce myself. My name is Nicolas Crovatti, I am a self taught developer and easily distracted by shiny things. This site, is my very own Shiny Thing and distracts me from my other activities. A shiny thing in my opinion ranges in order of importance from anything to new programming languages (new to me at least). This site is my playground. I am learning a brand new programming language, Ruby and the Rails framework for instance.</p>
<p>Over the years I developed various personal websites. My first (Frontpage generated HTML junk does not count!) was a portal (buzzword from the previous millennium) named Genius-line.com; back in 1999, web hosting was not cheap especialy when you were interested in learning <acronym title="Active Server Pages">ASP</acronym> v3.0 and had no spare cash. As a matter of fact, this was a huge sacrifice (not counting my time) in the name of what I was already calling my Passion.</p>
<p>Genius-line.com provided basic web stat analysis for friend&#8217;s websites using javascript and ASP to gather informations and log everything into a MS Access database. This application gave an idea to my my boss in a ShopBot Start up, and this tool evolved into a complete reporting/billing system to track leads to our customer&#8217;s products.</p>
<p>At the beginning, it was powered by ASP and MS Access, the database quickly grew up and we had to migrate the back end to SQL server, and then a few months later, to Oracle because of poor speed performance.</p>
<p>Then, one night in 2000, out of fucking nowhere, came <acronym title="PHP: Hypertext Preprocessor">PHP</acronym>. Web hosting became cheaper, in fact, it became free at a huge price: uncontrolled advertising was automatically injected in your pages.</p>
<p>Back to PHP, I started to learn this language (v3.0 at that time) by creating a developer&#8217;s community called Gencoding.com. The editorial content and targeted audience where mainly french speaking people. Meanwhile I was also learning Perl, so I was hosting both PHP and Perldoc mirrors on my domain as part of my effort to contribute to these beloved languages. Gencoding.com&#8217;s community members were mainly friends and co-workers. The site itself, despite some nice features like online helpers who were registered members and developers available for a chat on ICQ (Most popular chat system at that time) to help others newbies, a nifty shoutbox and a karma system for posts, only lasted one single year because of domain renewal procrastination.</p>
<p>The Shiny thing had shattered.</p>
<p>In 2001, I totally ported the reporting system at my job to PHP and MySQL and was very excited to do so as PHP offered various new and therefore shiny extensions. Graphics in the old version of the reporting system was made of images tags organized by table cells.</p>
<pre> 100%
 - --- ---
 | | | | | &lt;-- Transparent gif
 | --- | |
 | |#| ---
 | |#| |#|
 | |#| |#| &lt;-- Colored
 | |#| |#| 1px image
 | --- ---
 |________________________ _ _ _
 0 1 2 3 ... etc</pre>
<p>One of these extensions was (and still is) GD. Coupled (or not) with JPGraph I made a step forward into graphic&#8217;s generation.</p>
<p>I just love graphics. They are colorful and therefore, Shiny.</p>
<p>In 2002, I managed to learn the dark arcana called Linux. I did not learned ALL the Linux you fool, but big enough to feel myself comfortable to host my own web site and services.</p>
<p>* Sudden flashback *</p>
<p>Over the past several years, I installed many linux distributions. My first try was a disaster. I totally lost my windows 95 install. That experience kept me away from linux for a few months. Finally in 95 or 96 I managed to successfully install a RedHat 4.0 distribution. I had to downgrade my graphic card in order to run AfterStep on X but no matter, IT WORKED. I could do *almost* everything I could already do with Windows but, almost was not enough to stick with it. You know, Games and Internet Explorer were essential applications that I couldn&#8217;t live without.</p>
<p>A Bernard Madoff&#8217;s failure sized numbers of linux installations later, <strong>Debian</strong> hooked on me. I guess Linux&#8217;s user interface improvements and installation process easing along with personal evolving and self documentation about linux&#8217;s and *nix systems potential and spare hardware were the major factors why I switched.</p>
<p>2002 was also the year of my <em>Do It Yourself</em> Shiny thing.</p>
<p><strong>Counter-clan.net</strong>, the domain name says it all. A full featured CounterStrike community site with clan rankings, clan ladder, Game servers informations, and so on.</p>
<p>It never happened.</p>
<p>Not shiny anymore CounterStrike was. After several years of almost complete dedication to this game, the impulse to create the Counter-clan.net masterpiece failed me.</p>
<p>Nevermind Counter-clan.net became my homepage. Here is a quote from the welcome page :</p>
<p><em> Welcome to the Counter-Clan Network! Actually this site is a multi-purpose-web-site, I mean you may find not strictly Counter-Strike related content (I love this sentence). In other words, it&#8217;s a personnal homepage with a nice domain name. :) </em></p>
<p>Here is a link to web-archive.org : <a href="http://web.archive.org/web/20020604090613/http://www.counter-clan.net/">http://web.archive.org/web/20020604090613/http://www.counter-clan.net/</a></p>
<p>I created various interesting things hosted on my good old AMD Duron @800mhz! Here&#8217;s a list for my own record (Remember, you are visiting my shiny thing):</p>
<p><strong>Counter Spy</strong></p>
<p>Perl CGI that queried Counter Strike servers for various informations like players, scores or free slots. Note that the CGI was a port of a functionality of LazVegaz my IRC bot written in Perl that haunted efnet for years.</p>
<p><strong>IMDb PHP Class</strong></p>
<p>My first OpenSource project. An interface that permitted visitors to search the imdb site from your own site, display summary informations and casting about movies and saves results along with poster into mySQL for caching purpose. Fun with Binary Large Object field and regular expressions.</p>
<p>Fellow developpers found this project interesting and were involved in creating plug-ins and adding new features for various popular CMS like PostNuke, PHPNuke and Xoops.</p>
<p>As part of these developers, Greg Allan aka Adam Baum, co-founder and lead developer of PostNuke who died on June 16, 2002 in a motorcycle accident who ported IMDb PHP Class to PostNuke.</p>
<p>The project has been closed shortly after I received a notice from a dude at IMDB.com who was not aggree with me about advertisements stripped from content. Or something like that.</p>
<p><strong>Webalizer patch</strong></p>
<p>This patch was mainly an aestethical update to the popular Webalizer web stat analysis software. It mainly consisted of CSS support to skin Webalizer.</p>
<p><strong>Various guides</strong></p>
<p>Since CVS was the FOTY, as part of imdb php class, I proposed a cvs server for involved developers. This guide was a mini Quickstart Howto about using CVS.</p>
<p>I was very proud of my box uptime! I can&#8217;t remember exactly how much it was: web-archive.org states 98 days but I&#8217;m fairly sure it was a 3 numbers figure starting with 2 before the <strong>Teh Blackout</strong>.</p>
<p><strong>Teh Blackout</strong></p>
<p>In 2003, like I just stated, my server was running really well! I even was hosting my own smtp server while struggling with spam and Procmail. Then on summer 2003, I was on a trip in Berlin, Germany. Even if a one-week trip away from my long time running box seemed trivial, the Murphy&#8217;s Law stabbed me in the back.</p>
<p>I was checking once a day my sites stats and new forum&#8217;s posts from a cyber coffee near my hotel till the moment it couldn&#8217;t even respond to ping requests.</p>
<p>I knew later when back home what happened. Server&#8217;s aging motherboard and hard drives couldn&#8217;t handle the hit. My two years of personal work had been defeated by a single capricious thunderstorm. And mainly the fact that I never, even thought about backing-up anything, you know, all was so steady &#8230; Linux &#8230; Steady &#8230; Uptime &#8230;</p>
<p>Lesson learned.</p>
<p>[ insert random morpg addiction during 2004 ]</p>
<p>I guess I had to take a new breath.</p>
<p>In 2005, I tried to follow the blog way of life. My first blog was created that year, and was about me. I did not find enough to tell about this subject and stopped writing about a month after launch.</p>
<p>2006 was the year of new geographical location, new job, new projects to work on. Nothing I can expose here.</p>
<p>Over 2007 and 2008, I started <strong>moblur.org</strong></p>
<p>Moblur.org was my second blog. I purchased a dedicated hosting for this one because I wanted to talk about what I know best: programming languages.</p>
<p>And I did well. I was writting about a subject and developed it in a &#8220;Workshop&#8221; with proof of concept and more in-depth explanations.</p>
<p>From these posts, an idea came to me, building a favicon archive. That has never been done yet; that was useless so I found it to be necessary. I started the crawler coding in PHP5 backed up by a Postgresql database.</p>
<p>I quickly organised various cron jobs to manage my crawler&#8217;s instances. Database and filesystem started to grow really big, so I had to ask for help to my fellow colleague Phil concerning PostgreSQL indexes strategies. And then, when all was running flawlessly, <strong>teh Shiny faded</strong>.</p>
<p>When I stoped the hosting contract for moblur.org the 250GB web partition was almost full and the database was 9GB big. I learned a lot about web crawling and large scale web applications from this experiment.</p>
<p>For instance, I had to find a smart way to store a huge number of little favicon files (some were not <em>that</em> little and easily broken the 10 megs line). I first saved them by using reverse <acronym title="Fully Qualified Domain Name">fqdn</acronym> here is an example for www.shinylittlething.com/favicon.ico :</p>
<pre>com.shinylittlething.www.ico</pre>
<p>That was cool, I could easily find all icons related to a specific domain name but it was flawed. What about millions of files in a single folder ? System Management became harder above 10k files since standard bash commands failed to deal with such large list.</p>
<p>I then recalled Sourceforge directory structure for users&#8217; home organisation in their shell environment.</p>
<p>When I first noticed this, I was like: <em>OMG, how dumb they are to create sub-directories named of single letters that occurred to be the first couple username letter?! /home/users/n/c/ncrovatti/ lol!</em></p>
<p>Several years later, I finally understood.</p>
<p>Huge amount of files are easier to manage when split in small chunks. I promptly created the bash script to create such directory structure and another to sort already existing files.</p>
<p>This directory structure gave me the opportunity to enhance my backup system while still allowing alike navigation.</p>
<p>In 2009, I&#8217;m now hitting the 10 years experience mark. I&#8217;m still really glad with the career that chooses me. I&#8217;m still passionate and learning a huge amount of new techniques and improvements everyday, the nature of technologies is to be a constant evolution. That hints me that I am still *far* to be bored.</p>
<p>So far my friend&#8230; Despite my bad english, you have read this self-centred article till the end; I just have to consider you as a friend for this mark of interest.</p>
<p>See you my friend, see you in another 10 years after 20 years of shiny distractions and way sooner in my next article &#8220;The Genesis of a developper&#8221;.</p>
<p>I couldn&#8217;t safely close this article without thanking <a href="http://jduminy.free.fr">zejulio</a> for the invaluable help he gave me by fixing my english.</p>
<p>Trully yours,</p>
<p>Nicolas Crovatti.<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li>No Related Post</li>
</ul>
</div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Moblurorg?a=WSOBwlpavSA:3oGR6OQmTW0:cTv1dNCI_Tc"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=cTv1dNCI_Tc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=WSOBwlpavSA:3oGR6OQmTW0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Moblurorg?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Moblurorg?a=WSOBwlpavSA:3oGR6OQmTW0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Moblurorg?i=WSOBwlpavSA:3oGR6OQmTW0:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.shinylittlething.com/2009/01/22/10-years-of-programming/feed/</wfw:commentRss>
		<feedburner:origLink>http://blog.shinylittlething.com/2009/01/22/10-years-of-programming/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 1.330 seconds -->
