<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Technology News</title>
	<atom:link href="http://ambarishp.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ambarishp.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 17 Jun 2009 11:28:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ambarishp.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Technology News</title>
		<link>http://ambarishp.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ambarishp.wordpress.com/osd.xml" title="Technology News" />
	<atom:link rel='hub' href='http://ambarishp.wordpress.com/?pushpress=hub'/>
		<item>
		<title>URL Rewriting</title>
		<link>http://ambarishp.wordpress.com/2009/06/17/46/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/17/46/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 11:17:29 +0000</pubDate>
		<dc:creator>ambarishp</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=46</guid>
		<description><![CDATA[The Apache server’s mod_rewrite module gives you the ability to transparently redirect one URL to another, without the user’s knowledge. This opens up all sorts of possibilities, from simply redirecting old URLs to new addresses, to cleaning up the ‘dirty’ URLs coming from a poor publishing system — giving you URLs that are friendlier to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=46&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- Intro -->The Apache server’s <code class="unix">mod_rewrite</code> module gives you the ability to transparently redirect one URL to another, without the user’s knowledge. This opens up all sorts of possibilities, from simply redirecting old URLs to new addresses, to cleaning up the ‘dirty’ URLs coming from a poor publishing system — giving you URLs that are friendlier to both readers and search engines.</p>
<h2><span style="color:#ff00ff;">An Introduction to Rewriting</span></h2>
<p>Readable URLs are nice. A well designed website will have a logical file system layout, with smart folder and file names, and as many implementation details left out as possible. In the most well designed sites, readers can <strong>guess at filenames with a high level of success</strong>.</p>
<p>However, there are some cases when the best possible information design can’t stop your site’s URLs from being nigh-on impossible to use. For instance, you may be using a Content Management System that serves out URLs that look something like</p>
<p>http://www.example.com/viewcatalog.asp?category=hats&#038;prodID=53</p>
<p>This is a horrible URL, but it and its brethren are becoming increasingly prevalent in these days of dynamically-generated pages. There are a number of problems with an URL of this kind:</p>
<ul>
<li>It <strong>exposes the underlying technology</strong> of the website (in this case <acronym title="[ Active Server Page ] - Microsoft’s dynamic webpage technology">ASP</acronym>). This can give potential hackers clues as to what type of data they should send along with the query string to perform a ‘front-door’ attack on the site. Information like this shouldn’t be given away if you can help it.Even if you’re not overly concerned with the security of your site, <strong>the technology you’re using is at best irrelevant</strong> — and at worst a source of confusion — to your readers, so it should be hidden from them if possible.Also, if at some point in the future you decide to change the language that your site is based on (to <a href="http://php.net/">» PHP</a>, for instance); all your old URLs will stop working. This is a pretty serious problem, as anyone who has tackled a full-on site rewrite will attest.</li>
<li><strong>The URL is littered with awkward punctuation</strong>, like the question mark and ampersand. Those &amp; characters, in particular, are problematic because if another webmaster links to this page using that URL, the un-escaped ampersands will mess up their <a href="http://www.yourhtmlsource.com/accessibility/xhtmlexplained.html">XHTML</a> conformance. They will have to laboriously replace all the ampersands with <code>&amp;amp;</code> character entities, which is often forgotten.</li>
<li>Some <strong>search engines won’t index pages which they think are generated dynamically</strong>. They’ll see that question mark in the URL and just turn their asses around.</li>
</ul>
<p>Luckily, using rewriting, we can clean up this URL to something far more manageable. For example, we could map it to</p>
<p>http://www.example.com/catalog/hats/53/</p>
<p>Much better. This URL is more logical, readable and memorable, and will be picked up by all search engines. The <em>faux</em>-directories are short and descriptive. Importantly, it looks more <em>permanent</em>.</p>
<p>To use <code>mod_rewrite</code>, you supply it with the link text you want the server to match, and the real URLs that these URLs will be redirected to. The URLs to be matched can be straight file addresses, which will match one file, or they can be <em>regular expressions</em>, which will match many files.</p>
<p><a name="basicrewriting"></a></p>
<h2><span style="color:#ff00ff;">Basic Rewriting</span></h2>
<p>Some servers will not have <a href="http://httpd.apache.org/docs/mod/mod_rewrite.html">» mod_rewrite</a> enabled by default. As long as the <a href="http://modules.apache.org/">» module</a> is present in the installation, you can enable it simply by starting a .htaccess file with the command</p>
<p><code><strong>RewriteEngine</strong> on</code></p>
<p>Put this .htaccess file in your root so that rewriting is enabled throughout your site. You only need to write this line once per .htaccess file.</p>
<p><a name="basicredirects"></a></p>
<h3>Basic Redirects</h3>
<p>We’ll start off with a straight redirect; as if you had moved a file to a new location and want all links to the old location to be forwarded to the new location. Though you shouldn’t really ever <a title="As Sir Tim says, ‘Cool URIs don’t change’" href="http://www.w3.org/Provider/Style/URI.html">» move a file</a> once it has been placed on the web; at least when you <em>simply have to</em>, you can do your best to stop any old links from breaking.</p>
<p><code> <strong>RewriteEngine</strong> on<br />
<strong>RewriteRule</strong> <strong>^</strong>old\.html<strong>$</strong> new.html </code></p>
<p>Though this is the simplest example possible, it may throw a few people off. The structure of the ‘old’ URL is the only difficult part in this <code>RewriteRule</code>. There are three special characters in there.</p>
<ul>
<li>The caret, <code>^</code>, signifies the <strong>start of an URL</strong>, under the current directory. This directory is whatever directory the .htaccess file is in. You’ll start almost all matches with a caret.</li>
<li>The dollar sign, <code>$</code>, signifies the <strong>end of the string to be matched</strong>. You should add this in to stop your rules matching the first part of longer URLs.</li>
<li>The period or dot before the file extension is a special character in regular expressions, and would mean something special if we didn’t <strong>escape it with the backslash</strong>, which tells Apache to treat it as a normal character.</li>
</ul>
<p>So, this rule will make your server transparently redirect from old.html to the new.html page. Your reader will have no idea that it happened, and it’s pretty much instantaneous.</p>
<p><a name="forcingnewrequests"></a></p>
<h3>Forcing New Requests</h3>
<p>Sometimes you <em>do</em> want your readers to know a redirect has occurred, and can do this by forcing a new <abbr title="[ HyperText Transfer Protocol ] - The protocol designed for the Internet, to send webpages">HTTP</abbr> request for the new page. This will make the browser load up the new page as if it was the page originally requested, and the location bar will change to show the URL of the new page. All you need to do is turn on the <code>[R]</code> flag, by appending it to the rule:</p>
<p><code> <strong>RewriteRule</strong> <strong>^</strong>old\.html<strong>$</strong> new.html <strong>[R]</strong> </code></p>
<p><a name="usingregularexpressions"></a></p>
<h2><span style="color:#ff00ff;">Using Regular Expressions</span></h2>
<p>Now we get on to the <em>really</em> useful stuff. The power of <code>mod_rewrite</code> comes at the expense of complexity. If this is your first encounter with regular expressions, you may find them to be a tough nut to crack, but the options they afford you are well worth the slog. I’ll be providing plenty of examples to guide you through the basics here.</p>
<p>Using regular expressions you can have your rules matching a set of URLs at a time, and mass-redirect them to their actual pages. Take this rule;</p>
<p><code> <strong>RewriteRule</strong> <strong>^</strong>products/([0-9][0-9])/<strong>$</strong> /productinfo.php?prodID=$1 </code></p>
<p>This will match any URLs that start with ‘products/’, followed by any two digits, followed by a forward slash. For example, this rule will match an URL like products/12/ or products/99/, and redirect it to the PHP page.</p>
<p>The parts in square brackets are called <em>ranges</em>. In this case we’re allowing anything in the range 0-9, which is any digit. Other ranges would be <code>[A-Z]</code>, which is any uppercase letter; <code>[a-z]</code>, any lowercase letter; and <code>[A-Za-z]</code>, any letter in either case.</p>
<p>We have <strong>encased the regular expression part of the URL in parentheses</strong>, because we want to <strong>store whatever value was found here for later use</strong>. In this case we’re sending this value to a PHP page as an argument. Once we have a value in parentheses we can use it through what’s called a <em>back-reference</em>. <strong>Each of the parts you’ve placed in parentheses are given an index, starting with one</strong>. So, the first back-reference is <code>$1</code>, the third is <code>$3</code> etc.</p>
<p>Thus, once the redirect is done, the page loaded in the readers’ browser will be something like productinfo.php?prodID=12 or something similar. Of course, we’re keeping this true URL secret from the reader, because it likely ain’t the prettiest thing they’ll see all day.</p>
<p><a name="multipleredirects"></a></p>
<h3>Multiple Redirects</h3>
<p>If your site visitor had entered something like products/12, the rule above won’t do a redirect, as the slash at the end is missing. To promote good URL writing, we’ll take care of this by doing a direct redirect to the same URL with the slash appended.</p>
<p><code> <strong>RewriteRule</strong> <strong>^</strong>products/([0-9][0-9])<strong>$</strong> /products/$1/ <strong>[R]</strong> </code></p>
<p><strong>Multiple redirects in the same .htaccess file can be applied in sequence</strong>, which is what we’re doing here. This rule is added before the one we did above, like so:</p>
<p><code> <strong>RewriteRule</strong> <strong>^</strong>products/([0-9][0-9])<strong>$</strong> /products/$1/ <strong>[R]</strong><br />
<strong>RewriteRule</strong> <strong>^</strong>products/([0-9][0-9])/<strong>$</strong> /productinfo.php?prodID=$1 </code></p>
<p>Thus, if the user types in the URL products/12, our first rule kicks in, rewriting the URL to include the trailing slash, and doing a new request for products/12/ so the user can see that we likes our trailing slashes around here. Then the second rule has something to match, and transparently redirects this URL to productinfo.php?prodID=12. <em>Slick.</em></p>
<p><a name="matchmodifiers"></a></p>
<h3>Match Modifiers</h3>
<p>You can expand your regular expression patterns by adding some modifier characters, which allow you to match URLs with an indefinite number of characters. In our examples above, we were only allowing two numbers after products. This isn’t the most expandable solution, as if the shop ever grew beyond these initial confines of 99 products and created the URL productinfo.php?prodID=100, our rules would cease to match this URL.</p>
<p>So, instead of hard-coding a set number of digits to look for, we’ll work in some room to grow by allowing any number of characters to be entered. The rule below does just that:</p>
<p><code> <strong>RewriteRule</strong> <strong>^</strong>products/([0-9]<strong>+</strong>)<strong>$</strong> /products/$1/ <strong>[R]</strong> </code></p>
<p>Note the plus sign (<code>+</code>) that has snuck in there. This modifier changes whatever comes directly before it, by saying ‘<strong>one or more of the preceding character or range</strong>.’ In this case it means that the rule will match any URL that starts with products/ and ends with at least one digit. So this’ll match both products/1 and products/1000.</p>
<p>Other match modifiers that can be used in the same way are the asterisk, <code>*</code>, which means ‘zero or more of the preceding character or range’, and the question mark, <code>?</code>, which means ‘zero or only one of the preceding character or range.’</p>
<p><a name="addingguessableurls"></a></p>
<h3>Adding Guessable URLs</h3>
<p>Using these simple commands you can set up a slew of ‘shortcut URLs’ that you think visitors will likely try to enter to get to pages they know exist on your site. For example, I’d imagine a lot of visitors try jumping straight into our <a href="http://www.yourhtmlsource.com/stylesheets/">stylesheets</a> section by typing the URL http://www.yourhtmlsource.com/css/. We can catch these cases, and hopefully alert the reader to the correct address by updating their location bar once the redirect is done with these lines:</p>
<p><code> <strong>RewriteRule</strong> <strong>^</strong>css(/)?<strong>$</strong> /stylesheets/ <strong>[R]</strong> </code></p>
<p>The simple regular expression in this rule allows it to match the css URL with or without a trailing slash. The question mark means ‘zero or one of the preceding character or range’ — in other words either yourhtmlsource.com/css or yourhtmlsource.com/css/ will both be taken care of by this one rule.</p>
<p>This approach means less confusing <a title="Even if you’ve set up your own, nobody likes to hit them" href="http://www.yourhtmlsource.com/sitemanagement/custom404error.html">404 errors</a> for your readers, and a site that seems to run a whole lot smoother all ’round.</p>
<p>Author: <a title="http://www.yourhtmlsource.com/about/" href="http://www.yourhtmlsource.com/about/" target="_blank"><span title="Lettin’ bygones be bygones and so on and so on...">Ross Shannon</span></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=46&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/17/46/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/041e3f79c13ece634e8aed3acbb9fe03?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ambarishp</media:title>
		</media:content>
	</item>
		<item>
		<title>Top 5 Hot PHP Frameworks</title>
		<link>http://ambarishp.wordpress.com/2009/06/16/top-5-hot-php-frameworks/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/16/top-5-hot-php-frameworks/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 05:09:34 +0000</pubDate>
		<dc:creator>ambarishp</dc:creator>
				<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=38</guid>
		<description><![CDATA[1 CodeIgniter CodeIgniter is an Application Development Framework &#8211; a toolkit &#8211; for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=38&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { size: 21cm 29.7cm; margin: 2cm } 		P { margin-bottom: 0.21cm } 		H1 { margin-bottom: 0.21cm } 		H1.western { font-family: "Times New Roman", serif } 		H1.cjk { font-family: "DejaVu Sans" } 		H1.ctl { font-family: "DejaVu Sans" } 		H2 { margin-bottom: 0.21cm } 		H3 { margin-bottom: 0.21cm } --></p>
<h2><span style="color:#ff0000;"><span style="font-size:x-large;"><strong>1 </strong></span></span>CodeIgniter</h2>
<p style="text-align:left;padding-left:60px;"><strong>CodeIgniter </strong>is an Application Development Framework &#8211; a toolkit &#8211; for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.</p>
<p style="text-align:left;padding-left:60px;">Website :<a href="http://www.codeigniter.com/"> http://www.codeigniter.com/</a></p>
<h2><span style="color:#ff0000;"><span style="font-size:x-large;"><strong>2</strong></span></span><strong> </strong>CakePHP</h2>
<p style="margin-left:1.25cm;"><strong>CakePHP</strong> is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.</p>
<p style="margin-left:1.25cm;">Website: <a href="http://www.cakephp.org/">http://www.cakephp.org</a></p>
<p><span style="color:#ff0000;"><span style="font-size:x-large;"><strong>3</strong></span></span><strong> </strong><span style="font-size:large;"><strong>Zend</strong></span></p>
<p style="margin-left:1.25cm;margin-bottom:0;">Extending the art &amp; spirit of PHP, Zend Framework is based on simplicity, object-oriented best practices, corporate friendly licensing, and a rigorously tested agile codebase. Zend Framework is focused on building more secure, reliable, and modern Web 2.0 applications &amp; web services, and consuming widely available APIs from leading vendors like <a href="http://code.google.com/apis/gdata" target="_blank">Google</a>, <a href="http://aws.amazon.com/" target="_blank">Amazon</a>, <a href="http://developer.yahoo.com/" target="_blank">Yahoo!</a>, <a href="http://flickr.com/services/" target="_blank">Flickr</a>, as well as API providers and cataloguers like <a href="http://www.strikeiron.com/" target="_blank">StrikeIron</a> and <a href="http://www.programmableweb.com/" target="_blank">ProgrammableWeb</a>.</p>
<p style="margin-left:1.25cm;margin-bottom:0;">
<p style="margin-left:1.25cm;">Expanding on these core themes, we have implemented Zend Framework to embody extreme <strong>simplicity &amp; productivity</strong>, the <strong>latest Web 2.0 features</strong>, simple <strong>corporate-friendly licensing</strong>, and an agile <strong>well-tested code base</strong> that your enterprise can depend upon.</p>
<h3 style="margin-left:1.25cm;">Extreme Simplicity &amp; Productivity</h3>
<p style="padding-left:60px;">We designed Zend Framework with simplicity in mind. To provide a lightweight, loosely-coupled component library simplified to provide 4/5s of the functionality everyone needs and that lets you customize the other 20% to meet your specific business needs. By focusing on the most commonly needed functionality, we retain the simplified spirit of PHP programming, dramatically lower the learning curve, and your training costs – so developers get up-to-speed quickly. We do this with:</p>
<p style="padding-left:60px;">An extensible and well-tested code 	base – easy to augment</p>
<p style="padding-left:60px;">A flexible architecture – not 	locked-in to a rigid application structure<br />
No configuration files necessary to get up and running – or 	when maintaining and deploying your apps</p>
<p style="padding-left:30px;">Frameworks and best practices mean reduced training costs and quicker time-to-market – important factors in adoption decisions. Built so you can pick and choose just the pieces you need to turbocharge your web applications – all your developers know where to find their PHP / Zend Framework code, speeding new development and reducing maintenance costs.</p>
<p style="padding-left:30px;">Website: <a href="http://framework.zend.com/home">http://framework.zend.com/home</a></p>
<h2><span style="color:#ff0000;"><span style="font-size:x-large;"><strong>4</strong></span></span><strong> </strong>Symfony</h2>
<p style="margin-left:1.25cm;"><strong>Symfony</strong> is a <strong>web application framework</strong> for PHP5 projects.</p>
<p style="margin-left:1.25cm;">It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure.</p>
<p style="margin-left:1.25cm;">The very small number of prerequisites make symfony <strong>easy to install</strong> on any configuration; you just need Unix or Windows with a web server and PHP 5 installed. It is compatible with almost every database system. In addition, it has a very <strong>small overhead</strong>, so the benefits of the framework don&#8217;t come at the cost of an increase of hosting costs.</p>
<p style="margin-left:1.25cm;">Using symfony is so natural and easy for people used to PHP and the design patterns of Internet applications that the learning curve is reduced to less than a day. The <strong>clean design</strong> and <strong>code readability</strong> will keep your delays short. Developers can apply agile development principles (such as <a href="http://c2.com/cgi/wiki?DontRepeatYourself">DRY</a>, <a href="http://c2.com/cgi/wiki?KeepItSimpleStupid">KISS</a> or the <a href="http://www.extremeprogramming.org/">XP</a> philosophy) and focus on applicative logic without losing time to write endless XML configuration files.</p>
<p style="margin-left:1.25cm;">Symfony is aimed at building robust applications in an <strong>enterprise context</strong>. This means that you have <strong>full control</strong> over the configuration: from the directory structure to the foreign libraries, almost everything can be customized. To match your enterprise&#8217;s development guidelines, symfony is bundled with additional tools helping you to <strong>test</strong>, <strong>debug</strong> and <strong>document</strong> your project.</p>
<p style="padding-left:60px;">Last but not least, by choosing symfony you get the benefits of an active open-source community. It is <strong>entirely free</strong> and published under the <a href="http://www.phpframeworks.com/content/license">MIT license</a>.</p>
<p style="padding-left:60px;">Symfony is sponsored by <a href="http://www.sensio.com/">Sensio</a>, a French Web Agency well known for its innovative views on web development.</p>
<p style="padding-left:60px;">Website: <a href="http://www.symfony-project.com/" target="_blank">http://www.symfony-project.com/</a></p>
<h2><span style="color:#ff0000;"><span style="font-size:x-large;"><strong>5</strong></span></span><strong> Agavi</strong></h2>
<p style="margin-left:1.25cm;margin-bottom:0;">Agavi is a powerful, <em>scalable</em> PHP5 application framework that follows the <em>MVC</em> paradigm. It enables developers to write <em>clean, maintainable and extensible</em> code. Agavi puts <em>choice and freedom</em> over limiting conventions, and focuses on <em>sustained quality</em> rather than short-sighted decisions.</p>
<p style="margin-left:1.25cm;margin-bottom:0;">Website: <a href="http://www.agavi.org/" target="_blank"> http://www.agavi.org/</a></p>
<dl>
<dt><strong> </strong> </dt>
</dl>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=38&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/16/top-5-hot-php-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/041e3f79c13ece634e8aed3acbb9fe03?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ambarishp</media:title>
		</media:content>
	</item>
		<item>
		<title>Convert CSV to XML</title>
		<link>http://ambarishp.wordpress.com/2009/06/15/convert-csv-to-xml/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/15/convert-csv-to-xml/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 10:06:38 +0000</pubDate>
		<dc:creator>ambarishp</dc:creator>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Useful Codes]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=26</guid>
		<description><![CDATA[This is used to convert csv to xml private void ConverCSVToXml() { TextReader file = File.OpenText(&#8220;invoices.txt&#8221;); DataTable table = new DataTable(&#8220;invoice&#8221;); string line = file.ReadLine(); foreach (string s in line.Split(&#8216;\t&#8217;)) table.Columns.Add(s); line = file.ReadLine(); while (line != null) { table.Rows.Add(line.Split(&#8216;\t&#8217;)); line = file.ReadLine(); } file.Close(); table.WriteXml(&#8220;invoices.xml&#8221;); } Author: Deepak Rao<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=26&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is used to convert csv to xml</p>
<p><span style="color:#ff00ff;"> private void ConverCSVToXml()<br />
{<br />
TextReader file = File.OpenText(&#8220;invoices.txt&#8221;);<br />
DataTable table = new DataTable(&#8220;invoice&#8221;);</span></p>
<p><span style="color:#ff00ff;"> string line = file.ReadLine();<br />
foreach (string s in line.Split(&#8216;\t&#8217;))<br />
table.Columns.Add(s);</span></p>
<p><span style="color:#ff00ff;"> line = file.ReadLine();<br />
while (line != null)<br />
{<br />
table.Rows.Add(line.Split(&#8216;\t&#8217;));<br />
line = file.ReadLine();<br />
}</span></p>
<p><span style="color:#ff00ff;"> file.Close();<br />
table.WriteXml(&#8220;invoices.xml&#8221;);<br />
}</span></p>
<p>Author: <a title="Deepak Rao" href="http://www.deepakrao.co.nr" target="_blank">Deepak Rao</a><span style="color:#ff00ff;"><br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=26&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/15/convert-csv-to-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/041e3f79c13ece634e8aed3acbb9fe03?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ambarishp</media:title>
		</media:content>
	</item>
		<item>
		<title>IsValidEmailAddress</title>
		<link>http://ambarishp.wordpress.com/2009/06/15/isvalidemailaddress/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/15/isvalidemailaddress/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 10:02:26 +0000</pubDate>
		<dc:creator>ambarishp</dc:creator>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Useful Codes]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=24</guid>
		<description><![CDATA[This is used to Validating the Email Address public static bool IsValidEmailAddress( string lsEmail ) { bool lbResult; int liPosAtChar = -1 , liPosDotChar = -1; lbResult = Utility.IsValidTextBox( lsEmail ); if ( lbResult ) { liPosAtChar = lsEmail.IndexOf( &#8220;@&#8221; ); liPosDotChar = lsEmail.IndexOf( &#8220;.&#8221; ); if ( ( liPosDotChar == 0 ) &#124;&#124; ( [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=24&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is used to Validating the Email Address</p>
<p><span style="color:#ff00ff;">public static bool IsValidEmailAddress( string lsEmail )<br />
{<br />
bool lbResult;<br />
int liPosAtChar = -1 , liPosDotChar = -1;<br />
lbResult = Utility.IsValidTextBox( lsEmail );<br />
if ( lbResult )<br />
{<br />
liPosAtChar = lsEmail.IndexOf( &#8220;@&#8221; );<br />
liPosDotChar = lsEmail.IndexOf( &#8220;.&#8221; );<br />
if ( ( liPosDotChar == 0 ) || ( liPosAtChar == 0 ) )<br />
{ lbResult = false; }<br />
if ( lbResult )<br />
{<br />
if ( liPosDotChar == liPosAtChar + 1 )<br />
{ lbResult = false; }<br />
if ( lbResult )<br />
{<br />
int liposAtcharPlusone = liPosAtChar + 1;<br />
if ( lsEmail.IndexOf( &#8220;@&#8221; , liposAtcharPlusone ) &gt; 0 )<br />
{<br />
lbResult = false;<br />
}<br />
else<br />
{<br />
lbResult = true;<br />
}<br />
}<br />
}<br />
}<br />
return lbResult;<br />
}</span></p>
<p>Author : <a title="Deepak Rao" href="http://www.deepakrao.co.nr" target="_blank">Deepak Rao</a></p>
<p><span style="color:#ff00ff;"><br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=24&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/15/isvalidemailaddress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/041e3f79c13ece634e8aed3acbb9fe03?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ambarishp</media:title>
		</media:content>
	</item>
		<item>
		<title>GetNumeric Function</title>
		<link>http://ambarishp.wordpress.com/2009/06/15/getnumeric-function/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/15/getnumeric-function/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 10:00:07 +0000</pubDate>
		<dc:creator>ambarishp</dc:creator>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Useful Codes]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=22</guid>
		<description><![CDATA[This method will return the digits between the strings, if no digits found it returns 0 public static string GetNumeric( string expression ) { bool found = false; string returnValue = &#8220;&#8221;; foreach ( char c in expression ) { if ( Char.IsNumber( c ) ) { returnValue += c; found = true; } } [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=22&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This method will return the digits between the strings, if no digits found it returns 0</p>
<p><span style="color:#ff00ff;">public static string GetNumeric( string expression )<br />
{<br />
bool found = false;<br />
string returnValue = &#8220;&#8221;;<br />
foreach ( char c in expression )<br />
{<br />
if ( Char.IsNumber( c ) )</span><br />
<span style="color:#ff00ff;">{<br />
returnValue += c;<br />
found = true;<br />
}<br />
}<br />
if ( found == false )<br />
{<br />
returnValue = &#8220;0&#8243;;<br />
}</span><br />
<span style="color:#ff00ff;">return returnValue;<br />
}</span></p>
<p><span style="color:#ff00ff;"><span style="color:#000000;">Author : <a title="Deepak Rao" href="http://www.deepakrao.co.nr" target="_blank">Deepak Rao</a></span><br />
</span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=22&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/15/getnumeric-function/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/041e3f79c13ece634e8aed3acbb9fe03?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ambarishp</media:title>
		</media:content>
	</item>
		<item>
		<title>Is Numeric</title>
		<link>http://ambarishp.wordpress.com/2009/06/15/is-numeric/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/15/is-numeric/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 09:48:48 +0000</pubDate>
		<dc:creator>whenifeel</dc:creator>
				<category><![CDATA[Dot Net]]></category>
		<category><![CDATA[Useful Codes]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=16</guid>
		<description><![CDATA[This is one of the code which is always necessory public static bool IsNumeric( object expression ) { // Variable to collect the Return value of the TryParse method. bool isNumber; // Define variable to collect out parameter of the TryParse method. If the conversion fails, the out parameter is zero. double retNum; // The [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=16&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is one of the code which is always necessory</p>
<p><span style="color:#ff00ff;">public static bool IsNumeric( object expression )<br />
{</span><br />
// Variable to collect the Return value of the TryParse method.<br />
<span style="color:#ff00ff;">bool isNumber;</span><br />
// Define variable to collect out parameter of the TryParse method. If the conversion fails, the out parameter is zero.<br />
<span style="color:#ff00ff;">double retNum;</span><br />
// The TryParse method converts a string in a specified style and culture-specific format to its double-precision floating point number equivalent.<br />
// The TryParse method does not generate an exception if the conversion fails. If the conversion passes, True is returned. If it does not, False is returned.</p>
<p><span style="color:#ff00ff;">isNumber = Double.TryParse( Convert.ToString( expression ) , System.Globalization.NumberStyles.Any , System.Globalization.NumberFormatInfo.InvariantInfo , out retNum );</span></p>
<p><span style="color:#ff00ff;">return isNumber;<br />
}</span></p>
<p><span style="font-size:small;"><span style="color:#3366ff;"><span style="color:#000000;">Author:</span></span></span><span style="font-size:small;"><span style="color:#3366ff;"> <a title="http://www.deepakrao.co.nr" href="http://www.deepakrao.co.nr" target="_blank">Deepak Rao.</a></span></span></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=16&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/15/is-numeric/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/27f28ae1cedf6909e455fd2f7ae431ba?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whenifeel</media:title>
		</media:content>
	</item>
		<item>
		<title>Animating Actors</title>
		<link>http://ambarishp.wordpress.com/2009/06/15/animating-actors/</link>
		<comments>http://ambarishp.wordpress.com/2009/06/15/animating-actors/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 09:12:32 +0000</pubDate>
		<dc:creator>whenifeel</dc:creator>
				<category><![CDATA[Animation World]]></category>

		<guid isPermaLink="false">http://ambarishp.wordpress.com/?p=9</guid>
		<description><![CDATA[Photo courtesy Dreamworks LLC Animators modeled Oscar&#8217;s dance moves on Will Smith&#8217;s dancing style. According to Rob Letterman, one of the movie&#8217;s three directors, the uncanny resemblance between the fish and the performers &#8220;was one of the style choices, to capture their look and feel in the conceptual art. The animators studied their movies and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=9&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- dtl_id=40842 //--></p>
<table border="0" cellspacing="0" cellpadding="3" width="200" align="right">
<tbody>
<tr>
<td style="text-align:center;"><img src="http://static.howstuffworks.com/gif/shark-tale-ch.jpg" alt="" /><br />
<span>Photo courtesy <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.dreamworks.com" target="_blank">Dreamworks LLC</a></span><br />
<span><strong>Animators modeled Oscar&#8217;s dance moves on Will Smith&#8217;s dancing style.</strong></span></td>
</tr>
</tbody>
</table>
<p>According to <strong>Rob Letterman</strong>, one of the movie&#8217;s three directors, the uncanny resemblance between the fish and the performers &#8220;was one of the style choices, to capture their look and feel in the conceptual art. The animators studied their movies and performances and watched them in some of the recording sessions. They would study how they moved and their facial expressions.&#8221; <strong>Smith&#8217;s videos</strong> proved to be a great research tool. &#8220;They studied all his dance moves.&#8221;</p>
<p>Smith was cast first, &#8220;and the other actors came on board as we went along. We got everyone on our wish list,&#8221; says Letterman, noting that a presentation was made to each that included a <strong>character sketch</strong>. As in any caricature, certain details were exaggerated &#8212; <strong>Smith&#8217;s ears</strong>, <strong><a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.imdb.com/name/nm0000217/" target="_blank">Martin Scorsese&#8217;s eyebrows</a></strong>, <strong>Angelina Jolie&#8217;s lips</strong>. &#8220;Robert De Niro has a very specific mouth shape, with the corners turned down. We tried to use that,&#8221; adds <strong>Fabio Lignini</strong>, one of five supervising animators on the project.</p>
<table border="0" cellspacing="0" cellpadding="3" width="400" align="center">
<tbody>
<tr>
<td style="text-align:center;"><span style="font-family:arial,helvetica;"> <img src="http://static.howstuffworks.com/gif/shark-tale-16.jpg" alt="" /><br />
<span>Photo courtesy <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.dreamworks.com" target="_blank">Dreamworks LLC</a></span><br />
<span><strong>Oscar and Will Smith</strong></span></span></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="3" width="400" align="center">
<tbody>
<tr>
<td style="text-align:center;"><span style="font-family:arial,helvetica;"> <img src="http://static.howstuffworks.com/gif/shark-tale-17.jpg" alt="" /><br />
<span>Photo courtesy <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.dreamworks.com" target="_blank">Dreamworks LLC</a></span><br />
<span><strong>Lenny and Jack Black</strong></span></span></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="3" width="400" align="center">
<tbody>
<tr>
<td style="text-align:center;"><span style="font-family:arial,helvetica;"> <img src="http://static.howstuffworks.com/gif/shark-tale-18.jpg" alt="" /><br />
<span>Photo courtesy <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.dreamworks.com" target="_blank">Dreamworks LLC</a></span><br />
<span><strong>Don Lino and Robert De Niro</strong></span></span></td>
</tr>
</tbody>
</table>
<p>Great care was taken to find actual <strong>fish that best matched the characters</strong>. First, all of the filmmakers, including the designers and animators, watched documentaries, visited the <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.aquariumofpacific.org/index.html" target="_blank">Long Beach Aquarium</a> and studied reference books. The <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.bishopmuseum.org/research/natsci/fish/cleaner.html" target="_blank">cleaner wrasse</a>, a fish that cleans other fish and its environment, was the logical model for Smith&#8217;s character <strong>Oscar</strong>, a Whale Wash worker. The good-hearted <strong>Angie</strong>, voiced by Zellweger, became an <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://animal-world.com/encyclo/marine/angels/angels.htm" target="_blank">angelfish</a>, and femme fatale <strong>Lola</strong>, Jolie&#8217;s character, was conceived as a <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://shrimp.ccfhrb.noaa.gov/lionfish/lionfish.html" target="_blank">lionfish</a>/<a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.reefimages.com/Scorpions/Scorpions.htm" target="_blank">dragonfish</a> mix. Appropriately, lionfish are poisonous.</p>
<table border="0" cellspacing="0" cellpadding="3" width="400" align="center">
<tbody>
<tr>
<td style="text-align:center;"><span style="font-family:arial,helvetica;"> <img src="http://static.howstuffworks.com/gif/shark-tale-9.jpg" alt="" /><br />
<span>Photo courtesy <a href="http://www.howstuffworks.com/framed.htm?parent=shark-tale.htm&amp;url=http://www.dreamworks.com" target="_blank">Dreamworks LLC</a></span><br />
<span><strong>Oscar (Will Smith, left) and Lola (Angelina Jolie)</strong></span></span></td>
</tr>
</tbody>
</table>
<div>
<div><span> </span><span><span><a title="Edit Post" href="http://www.blogger.com/post-edit.g?blogID=1453521408710121015&amp;postID=9058254348494270753"> </a> </span> </span></div>
<div><span> </span></div>
</div>
<p><!-- google_ad_section_end(name=default) -->But fish do not naturally possess the physical traits that humans use to convey emotions. So the next step is providing fish with the necessary characteristics to reflect their performers&#8217; expressions.</p>
<p>Author: Deepak Rao.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ambarishp.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ambarishp.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ambarishp.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ambarishp.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ambarishp.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ambarishp.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ambarishp.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ambarishp.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ambarishp.wordpress.com&amp;blog=8179906&amp;post=9&amp;subd=ambarishp&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ambarishp.wordpress.com/2009/06/15/animating-actors/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/27f28ae1cedf6909e455fd2f7ae431ba?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">whenifeel</media:title>
		</media:content>

		<media:content url="http://static.howstuffworks.com/gif/shark-tale-ch.jpg" medium="image" />

		<media:content url="http://static.howstuffworks.com/gif/shark-tale-16.jpg" medium="image" />

		<media:content url="http://static.howstuffworks.com/gif/shark-tale-17.jpg" medium="image" />

		<media:content url="http://static.howstuffworks.com/gif/shark-tale-18.jpg" medium="image" />

		<media:content url="http://static.howstuffworks.com/gif/shark-tale-9.jpg" medium="image" />
	</item>
	</channel>
</rss>
