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

<channel>
	<title>andPHP.com &#187; Web Development</title>
	<atom:link href="http://www.andphp.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andphp.com</link>
	<description>Web Development Tips, Tricks &#38; Much More</description>
	<lastBuildDate>Tue, 06 Apr 2010 19:41:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Update Copyright Year WITHOUT using PHP</title>
		<link>http://www.andphp.com/2010/01/26/update-copyright-year-without-using-php/</link>
		<comments>http://www.andphp.com/2010/01/26/update-copyright-year-without-using-php/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 21:52:58 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Functions]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://www.andphp.com/?p=74</guid>
		<description><![CDATA[I&#8217;m going to show you how to automatically update the copyright year of your website without the use of PHP.  I have been seeing a lot of posts about, how to update the copyright notice of your website using PHP&#8217;s date() function.  What about those people whose websites are not PHP Diven? 
Well, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m going to show you how to automatically update the copyright year of your website without the use of PHP.  I have been seeing a lot of <a href="http://www.thewebsqueeze.com/tips-and-tricks/never-update-your-copyright-again-php.html" title="Did you remember to manually update your copyright statement to 2010?" target="_blank">posts</a> about, how to update the copyright notice of your website using PHP&#8217;s <a href="http://us3.php.net/manual/en/function.date.php" target="_blank" rel="nofollow" title="Format a local time/date">date()</a> function.  What about those people whose websites are not PHP Diven? </p>
<p>Well, you can do something very similar using JavaScript.  All you need is access to your HTML files. </p>
<h2>Writing the Display Copyright Function</h2>
<p>We are going to write a Javascript function that will output <em>Copyright &copy; [current year]</em>. Where [current year] is &#8230; you guessed it, the current year.</p>
<pre class="brush: javascript">
&lt;script type="text/javascript">
//&lt;![CDATA[
/**
 * Function looks for element whose id is copyright and
 * inserts a dynamic copyright notice with the current year
 */
	function DisplayCopyright(){
		var d = new Date();
		var e = document.getElementById("copyright");
		e.innerHTML = ("Copyright &copy; " + d.getFullYear());
}
 //]]&gt;
&lt;/script>
</pre>
<p><span id="more-74"></span></p>
<ul>
<li>This function instantiates a Date object.</li>
<li>Looks for the element whose id is equal to <strong>copyright</strong>.</li>
<li>Inserts a dynamic copyright notice with the current year, according to local time.</li>
</ul>
<h2> Placing the Copyright Element</h2>
<p>Now that we have the function that is going to dynamically generate the copyright notice. We need to add the element which will hold the copyright notice.</p>
<p>I&#8217;ll use a <strong>&lt;span&gt;</strong> element.</p>
<pre class="brush: html">
&lt;span id="copyright">&nbsp;&lt;/span>
</pre>
<p>You may place the above, wherever you want the copyright notice to be displayed.</p>
<h2>Making it Work</h2>
<p>Now that we have all of the separate pieces, it&#8217;s time to make it all function together.  You are going to need to call the <strong>DisplayCopyright</strong> function we have created earlier. One way to do this is by placing an <strong>window.onload</strong> following the function.</p>
<pre class="brush: javascript">
&lt;script type="text/javascript">
//&lt;![CDATA[
/**
 * Function looks for element whose id is copyright and
 * inserts a dynamic copyright notice with the current year
 */
	function DisplayCopyright(){
		var d = new Date();
		var e = document.getElementById("copyright");
		e.innerHTML = ("Copyright &copy; " + d.getFullYear());
}
//call DisplayCopyright when page finishes loading
window.onload = DisplayCopyright;
 //]]&gt;
&lt;/script>
</pre>
<p>There you have it, a non PHP way of dynamically updating the copyright notice of your website.  Keep in mind that if the user browser has JavaScript disabled, this particular solution will not work.  </p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2009/10/29/jquery-contactable-plug-in-on-internet-explorer/" title="jQuery Contactable Plug-in on Internet Explorer">jQuery Contactable Plug-in on Internet Explorer</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2010/01/26/update-copyright-year-without-using-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Contactable Plug-in on Internet Explorer</title>
		<link>http://www.andphp.com/2009/10/29/jquery-contactable-plug-in-on-internet-explorer/</link>
		<comments>http://www.andphp.com/2009/10/29/jquery-contactable-plug-in-on-internet-explorer/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 20:40:43 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[contactable]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://www.andphp.com/?p=35</guid>
		<description><![CDATA[I wanted to implement the Contactable jQuery Plug-in to one of my website, but when I tested it on Internet Explorer, it was not behaving the same as Firefox or Google Chrome.  Here is how I managed to fix this issue for both IE7 and IE8.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently discovered a nice plug-in for jQuery that mimics the &#8220;Feedback&#8221; tab that most webapp sites are using these days.  I&#8217;ve downloaded the plug-in from <a rel="nofollow" href="http://theodin.co.uk/blog/ajax/contactable-jquery-plugin.html">theodin.co.uk</a>, in hopes to use it for a quick request quote form for my <a title="ikywim creative" href="http://www.ikywim.com">web design company</a>.  I&#8217;ve modified it quite a bit to make it more secure.  I went ahead and used jQuery FormSubmit plug-in to send the data to a php file that also does some validation on the data being inputted by the user.</p>
<p>Everything was setup and working, but I was doing my development on Ubuntu and running Mozilla Firefox 3.5.  So, when I went to test it on Windows XP Internet Explorer 7 and 8.  I noticed that the tab would not behave the same as it does on Firefox or Google Chrome.</p>
<div id="attachment_42" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.andphp.com/wp-content/uploads/2009/10/ikywim-contactable-ie8.png" rel="lightbox[35]"><img class="size-medium wp-image-42 " title="Internet Explorer 8" src="http://www.andphp.com/wp-content/uploads/2009/10/ikywim-contactable-ie8-300x214.png" alt="Contactable jQuery Plugin on IE8" width="300" height="214" /></a><p class="wp-caption-text">Contactable jQuery Plugin on IE8</p></div><br />
<span id="more-35"></span><br />
What I ended up doing was I removed all of the properties from the CSS that has * in the beginning, and moved them to a separate css file.</p>
<pre class="brush:css">
@char "UTF-8"
/**
* Contactable
*/

* html #contactable {
position:absolute;
margin-top:200px;
}

* html #contactForm {
width:394px;
}
</pre>
<p>Then loaded that file using <a rel="nofollow" href="http://msdn.microsoft.com/en-us/library/ms537512%28VS.85%29.aspx">HTML Conditional Comments</a>.</p>
<pre class="brush:html">
<!--[if lt IE 8]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="/css/ie.css" mce_href="/css/ie.css" />
<a name="IE8.js">
<![endif]-->
</pre>
<p>I&#8217;m also using the <a rel="nofollow" href="http://code.google.com/p/ie7-js/">Google IE 7 Project </a>.</p>
<p>After implementing these changes the tab and the form worked perfectly, on Internet Explorer 7 and Internet Explorer 8.</p>
<p><div id="attachment_43" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.andphp.com/wp-content/uploads/2009/10/ikywim-contactable-updated-ie8.png" rel="lightbox[35]"><img class="size-medium wp-image-43 " title="Contactable Updated" src="http://www.andphp.com/wp-content/uploads/2009/10/ikywim-contactable-updated-ie8-300x214.png" alt="Contactable jQuery Plugin updated for Internet Explorer" width="300" height="214" /></a><p class="wp-caption-text">Contactable jQuery Plugin updated for Internet Explorer</p></div>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2010/01/26/update-copyright-year-without-using-php/" title="Update Copyright Year WITHOUT using PHP">Update Copyright Year WITHOUT using PHP</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2009/10/29/jquery-contactable-plug-in-on-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iBuldings.com PHP 5.3 Migrating Guide</title>
		<link>http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/</link>
		<comments>http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:28:59 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[migrating]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 5.3]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.andphp.com/?p=26</guid>
		<description><![CDATA[Cal Evans has been kind enough to provide the PHP World with a guide to migrating to PHP 5.3, which can be found in the TechPortal.
Make sure to read the Release Announcement as you familiarize yourself with the new features, and improvements. 

As PHP developers download and start testing the biggest change to the language [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/calevans">Cal Evans</a> has been kind enough to provide the PHP World with a guide to migrating to PHP 5.3, which can be found in the <a href="http://techportal.ibuildings.com/" title="PHP For Professional Developers">TechPortal</a>.</p>
<p>Make sure to read the <a href="http://php.net/releases/5_3_0.php">Release Announcement</a> as you familiarize yourself with the new features, and improvements. </p>
<blockquote><p>
As PHP developers download and start testing the biggest change to the language in 7 years, many are wondering not about Santa’s bag full of new toys for them to use in building tomorrow’s applications but about the changes in the language that will affect yesterday’s applications.<br />
&#8230;<br />
The following is a distillation of the PHP 5.3 migration guide. We only cover those items most likely to affect legacy 5.x code.</p></blockquote>
<p>The full guide can be found in the <a href="http://techportal.ibuildings.com/2009/06/30/migrating-to-php-5-3/">iBuildings Blog</a> </p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2009/06/30/php-5-3-released/" title="PHP 5.3 Released">PHP 5.3 Released</a></li><li><a href="http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/" title="PHP Namespaces Is Not Years Away, Now In PHP 5.3">PHP Namespaces Is Not Years Away, Now In PHP 5.3</a></li><li><a href="http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/" title="Resize images with this PHP script">Resize images with this PHP script</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.3 Released</title>
		<link>http://www.andphp.com/2009/06/30/php-5-3-released/</link>
		<comments>http://www.andphp.com/2009/06/30/php-5-3-released/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 20:15:00 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php 5.3]]></category>

		<guid isPermaLink="false">http://www.andphp.com/?p=23</guid>
		<description><![CDATA[It is finally here.  PHP 5.3 has been released and like we mentioned before (PHP Namespaces Is Not Years Away, Now In PHP 5.3).  It supports Namespaces. 
Related PostsiBuldings.com PHP 5.3 Migrating GuidePHP Namespaces Is Not Years Away, Now In PHP 5.3Resize images with this PHP script]]></description>
			<content:encoded><![CDATA[<p>It is finally here.  <a href="http://php.net/releases/5_3_0.php">PHP 5.3</a> has been released and like we mentioned before (<a href="http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/">PHP Namespaces Is Not Years Away, Now In PHP 5.3</a>).  It supports <a href="http://us.php.net/namespaces">Namespaces</a>. </p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/" title="iBuldings.com PHP 5.3 Migrating Guide">iBuldings.com PHP 5.3 Migrating Guide</a></li><li><a href="http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/" title="PHP Namespaces Is Not Years Away, Now In PHP 5.3">PHP Namespaces Is Not Years Away, Now In PHP 5.3</a></li><li><a href="http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/" title="Resize images with this PHP script">Resize images with this PHP script</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2009/06/30/php-5-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Namespaces Is Not Years Away, Now In PHP 5.3</title>
		<link>http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/</link>
		<comments>http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 17:07:00 +0000</pubDate>
		<dc:creator>Jamal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[namespaces]]></category>
		<category><![CDATA[object oriented]]></category>
		<category><![CDATA[oop]]></category>
		<category><![CDATA[php 5.3]]></category>
		<category><![CDATA[php 6]]></category>
		<category><![CDATA[php namespaces]]></category>

		<guid isPermaLink="false">http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/</guid>
		<description><![CDATA[This article is outdated, for more information on PHP Namespaces please check the PHP Manual.
Namespaces have been around for quite a while in Object Oriented programming with languages such Java. Basically, for those of you who have not used them, it means that you can create a context or package for a set of variables, [...]]]></description>
			<content:encoded><![CDATA[<p><span style="background-color: #FFFDE5;" ><strong style="color: #930">This article is outdated, for more information on PHP Namespaces please check the <a href="http://us.php.net/manual/en/language.namespaces.php" rel="nofollow" title="PHP: Namespaces - Manual">PHP Manual</a>.</strong></span></p>
<p>Namespaces have been around for quite a while in Object Oriented programming with languages such Java. Basically, for those of you who have not used them, it means that you can create a context or package for a set of variables, functions and classes to prevent same named objects from different packages to conflict.</p>
<pre class="brush: php;">&lt;?php

/* PHP Namespace sample */
namespace Project::Sample;

class Foo {
  function bar () {
    echo "Test namespace function";
  }
}

// since Project::Sample is the current namespace
$foo = new Foo();

// or using the full namespace
$foo = new Project::Sample::Foo();

// or using the use keyword
use Project::Sample as Sample

$foo = new Sample::Foo();

$foo-&gt;bar(); // Prints: Test namespace function
?&gt;</pre>
<p><span id="more-15"></span></p>
<p>Currently, the only solution is to prefix objects within a package or project with the project name. This method works, but it creates large names and repetition.</p>
<p>For example, say you have a blog project that you named MyBlog and a company named MyCompany, the following code could be a sample of the article class.</p>
<pre class="brush: php;">
&lt;?php

class MyCompany_MyBlog_Article {
  private $title;

  public function setTitle($title) {
    $this-&gt;title = $title;
  }

  public function getTitle() {
    return $this-&gt;title;
  }
}
?&gt;</pre>
<p>This currently works, yes. The problem is that any time you want to call the Article class created above you have to use MyBlog_Article. Namespaces solve this problem.</p>
<h3>Creating namespaces</h3>
<p>Here is what the above code would look like using namespaces instead.</p>
<pre class="brush: php;">
&lt;?php

namespace MyCompany::MyBlog;

class Article {
  private $title;

  public function setTitle($title) {
    $this-&gt;title = $title;
  }

  public function getTitle() {
    return $this-&gt;title;
  }
}
?&gt;</pre>
<p>At a first glance, there is little difference in the code. In fact, the second sample has more code because of the <em>namespace</em> keyword. Namespaces do provide improvement though. First, any object that is created after the namespace call will be placed under that namespace. So you can create multiple objects without including MyBlog for each one. Additionally, if you were to decide to change the name of the project or package, all you have to do is change the namespace call. All the other objects would fall under the new naming. Lastly, calling the objects becomes a lot simpler, as you will not have to directly reference the full name of the object including the namespace every time you need it.</p>
<h3>Using namespaces</h3>
<p>Lets look at how we could use the above article class with namespaces.</p>
<pre class="brush: php;">
&lt;?php

require ("/path/to/class/mycompany.myblog.article.php");
use MyCompany::MyBlog;

$article = new MyBlog::Article();
$article-&gt;setTitle('Sample Title');
echo $article-&gt;getTitle(); // Prints: Sample Title
?&gt;</pre>
<p>Now this is where the beauty of namespaces comes in to play. The <em>use</em> keyword sets the namespace locally so you do not have to call objects within it with the full namespace, so instead of using MyCompany::MyBlog::Article you can simply use MyBlog::Article as is shown in the example above. You can always use the article object without the use keyword.</p>
<pre class="brush: php;">
&lt;?php

require ("/path/to/class/mycompany.myblog.article.php");

$article = new MyCompany::MyBlog::Article();
?&gt;</pre>
<h3>Multiple Namespaces and Aliases</h3>
<p>A great feature of namespaces is being able to use multiple namespaces at once. Say you are writing a plugin to write to multiple blogs at once (I have no clue why you would need one), with namespaces you would not have conflicting object names to deal with. Lets take a look at using the objects MyCompany::MyBlog::Article and OtherBlog::Article.</p>
<pre class="brush: php;">
&lt;?php

require ("/path/to/class/mycompany.myblog.article.php");
require ("/path/to/class/otherblog.article.php");

use MyCompany::MyBlog as My;
use OtherBlog as Other;

$myarticle = new My::Article();
$otherarticle = new Other::Article();
// ...
?&gt;</pre>
<p>Using <em>as</em> after the <em>use</em> keyword will create an alias of the namespace to make it easier to use.</p>
<h3>Namespace Constants</h3>
<p>You can define namespace constats using the the const keyword within a namespace.</p>
<pre class="brush: php;">
&lt;?php

namespace MyCompany::MyBlog;

const VERSION = '0.1.1';

echo MyCompany::MyBlog::VERSION; // Prints: 0.1.1
?&gt;</pre>
<p>You can also call constants using namespace aliases created with the use keyword. You can also call class constants the same way.</p>
<pre class="brush: php;">
&lt;?php

namespace MyCompany::MyBlog;

class Article {
  const VERSION = '0.1.1';
}

echo MyCompany::MyBlog::Article::VERSION; // Prints: 0.1.1
?&gt;</pre>
<h3>Autoloading namespaces</h3>
<p>Another great feature of namespaces is the autoload support. When calling a class by its namespace, the full class name, including namespaces, will be passed to the __autoload function, even when using a namespace alias.</p>
<pre class="brush: php;">
&lt;?php

function __autoload($name) {
  $name = strtolower($name);
  $name = str_replace('::', '.', $name);
  require_once $name . '.php';
}

use MyCompany::MyBlog as Blog;

$article = new Blog::Article();
?&gt;</pre>
<p>One issue that does arise with namespaces is being able to call a global function from within a namespace. To call a global function you would need to prefix an empty scope operator (::).</p>
<pre class="brush: php;">
&lt;?php

namespace package;

function test() {
  echo "Calling the packaged test function";
}

test(); // Prints: Calling the packaged test function

::test(); // Prints: Calling the global test function
?&gt;</pre>
<pre class="brush: php;">
&lt;?php

function test() {
  echo "Calling the global test function";
}

require('package.php');
?&gt;</pre>
<p>If you want to play around with this yourself you can grab a snapshot of PHP 5.3 from <a href="http://snaps.php.net">http://snaps.php.net/</a> (You can even get PHP 6 from there).</p>
<p>Now, all we have to do is wait until PHP 5.3 is stable and released. Since 5.3 is just a minor revision number most hosting providers would be more willing to update than if it was PHP 6. Therefore, namespaces support will take less time to be globally supported. This is very exciting news.</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/" title="iBuldings.com PHP 5.3 Migrating Guide">iBuldings.com PHP 5.3 Migrating Guide</a></li><li><a href="http://www.andphp.com/2009/06/30/php-5-3-released/" title="PHP 5.3 Released">PHP 5.3 Released</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2008/03/04/php-namespaces-is-not-years-away-to-be-included-in-php-53/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resize images with this PHP script</title>
		<link>http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/</link>
		<comments>http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 16:55:12 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[easy]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[image resize]]></category>
		<category><![CDATA[manipulation]]></category>
		<category><![CDATA[on the fly]]></category>
		<category><![CDATA[photo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/</guid>
		<description><![CDATA[Joe Lencioni over at Shifting Pixel, has written a post about the easy to use image resizing script.  It&#8217;s a really simple script that you use by specifying the parameters in the src part of the img tag.
The major advantage of this script is that it allows me to resize and crop any image [...]]]></description>
			<content:encoded><![CDATA[<p><cite class="entry-title author">Joe Lencioni</cite> over at <a href="http://shiftingpixel.com/" title="Shifting Pixel" target="_blank">Shifting Pixel</a>, has written a post about the easy to use image resizing script.  It&#8217;s a really simple script that you use by specifying the parameters in the src part of the img tag.</p>
<blockquote><p>The major advantage of this script is that it allows me to resize and crop any image on my website without touching the actual image or writing any code.</p></blockquote>
<p>Try the script yourself, and if you can improve on it let him know by leaving him a comment.<br />
<a href="http://shiftingpixel.com/2008/03/03/smart-image-resizer/" title="A ridiculously easy-to-use PHP script for resizing images the smart way." target="_blank"> A ridiculously easy-to-use PHP script for resizing images the smart way</a>.</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/" title="iBuldings.com PHP 5.3 Migrating Guide">iBuldings.com PHP 5.3 Migrating Guide</a></li><li><a href="http://www.andphp.com/2009/06/30/php-5-3-released/" title="PHP 5.3 Released">PHP 5.3 Released</a></li><li><a href="http://www.andphp.com/2008/02/29/using-debug_backtrace-to-speed-up-debuging-process/" title="Using debug_backtrace to speed up debuging process">Using debug_backtrace to speed up debuging process</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using debug_backtrace to speed up debuging process</title>
		<link>http://www.andphp.com/2008/02/29/using-debug_backtrace-to-speed-up-debuging-process/</link>
		<comments>http://www.andphp.com/2008/02/29/using-debug_backtrace-to-speed-up-debuging-process/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 20:34:21 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Functions]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debug_backtrace]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.andphp.com/2008/02/29/using-debug_backtrace-to-speed-up-debuging-process/</guid>
		<description><![CDATA[Hasin Hayder from Developer Tutorials wrote this neat post about using debug_backtrace.   It could help you debug your code more efficiently and save you hours of dumping variables and testing functions, not to mention saving you from pulling your hair out.  I myself used it a couple of times when writing class [...]]]></description>
			<content:encoded><![CDATA[<p>Hasin Hayder from Developer Tutorials wrote this neat post about using <a href="http://us2.php.net/debug_backtrace" title="debug_backtrace" target="_blank">debug_backtrace</a>.   It could help you debug your code more efficiently and save you hours of dumping variables and testing functions, not to mention saving you from pulling your hair out.  I myself used it a couple of times when writing class files and such, it helps you read the code a little better too.  Go ahead and check out his post and leave a comment.</p>
<p><a href="http://www.developertutorials.com/blog/php/debugging-php-code-using-debug_backtrace-58/" rel="bookmark" title="Permanent Link: Debugging PHP code using debug_backtrace"  target="_blank">Debugging PHP code using debug_backtrace</a></p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/" title="iBuldings.com PHP 5.3 Migrating Guide">iBuldings.com PHP 5.3 Migrating Guide</a></li><li><a href="http://www.andphp.com/2009/06/30/php-5-3-released/" title="PHP 5.3 Released">PHP 5.3 Released</a></li><li><a href="http://www.andphp.com/2008/03/04/resize-images-with-this-php-script/" title="Resize images with this PHP script">Resize images with this PHP script</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2008/02/29/using-debug_backtrace-to-speed-up-debuging-process/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gedit for PHP development (Textmate-ish)</title>
		<link>http://www.andphp.com/2008/02/23/gedit-for-php-development-textmate-ish/</link>
		<comments>http://www.andphp.com/2008/02/23/gedit-for-php-development-textmate-ish/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 00:20:22 +0000</pubDate>
		<dc:creator>Jamal</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[gedit]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[linux ide]]></category>
		<category><![CDATA[web development environment]]></category>

		<guid isPermaLink="false">http://www.andphp.com/2008/02/23/gedit-for-php-development-textmate-ish/</guid>
		<description><![CDATA[Linux Only (sort of): I once was a fan of heavy development environments such as Eclipse or Zend Studio, but not anymore. Don&#8217;t get me wrong. They are very powerful, but in a way too powerful, or rather, too heavy. PHP is a scripting language, likewise, a PHP editor should be fast and easy to [...]]]></description>
			<content:encoded><![CDATA[<p align="left">Linux Only (<a href="http://cygwinports.dotsrc.org/screenshots/gedit.jpg" rel="lightbox[9]">sort of</a>): I once was a fan of heavy development environments such as Eclipse or Zend Studio, but not anymore. Don&#8217;t get me wrong. They are very powerful, but in a way too powerful, or rather, too heavy. PHP is a scripting language, likewise, a PHP editor should be fast and easy to get on and start writing. With a few plugins and modifications you can get gedit to be both a powerful and beautiful editor for PHP, and other languages. This guide will help you to get gedit to resemble something like Textmate for Mac. (This will only work with gedit 2.20+)</p>
<p align="center"><img src="/wp-content/uploads/gedit_1.png" alt="Gedit as a PHP editor" height="298" width="500" /></p>
<p><span id="more-9"></span></p>
<p><strong>File Browser: </strong>This is an excellent plugin that shows the file browser on the left. This even allows you to use connections made from nautilus (the default file explorer for GNOME). Meaning that you can connect to through FTP, SFTP, SSH, Windows share, WebDav, and well, do you really need anything else? To enable it, under <em>Edit</em> select <em>Preferences</em>. Then click the <em>Plugins</em> tab and check File Browser. If it doesn&#8217;t show up make sure you enable the side pane under <em>View</em> (or press F9)<em>.</em></p>
<p><strong>Snippets: </strong>With snippets, you can easily type a keyword (say, function) and hit tab, and it will create the full structure based on the keyword as a template. You can even modify or create new snippets as you please for each language. Once created, you can use tab to skip between each section. This one also comes with gedit by default, so enable it just as you did with the file browser.</p>
<p><strong>Darkmate: </strong>This is the dark theme that I use and prefer. The darker background is easier on my ways because often enough I sit there staring at my screen coding for hours on end. It really helps my eyes, plus the contrast makes things a bit easier to find. You can find the theme <a href="http://live.gnome.org/GtkSourceView/StyleSchemes">here</a> (just scroll down to Dark Styles). Download the XML file and save it under ~/.gnome2/gedit/styles/. Restart gedit and it should show up under <em>Preferences </em>in the <em>Font &amp; Color </em>tab.</p>
<p><strong>SnapOpen:</strong> Allows you to quickly open a file based on the current directory of file browser. It will search for the filename under all sub-directories and quickly find the match for the file you are looking for. This one you can download from <a href="http://www.upperbound.net/snapopen/">here</a>.  Just extract all the files to ~/.gnome2/gedit/plugins and it should show up in the <em>Plugins </em>tab in <em>Preferences</em>. Once enabled, just press Ctrl+Alt+O to open the SnapOpen window, type a few letters of a filename and the matches should start showing up.</p>
<p align="center"><img src="/wp-content/uploads/gedit_2.png" alt="SnapOpen Gedit Plugin" height="405" width="528" /></p>
<p> <strong>Quick Highlight Mode: </strong>This has been useful a few times, specially if you write in other languages that can be embedded with HTML such as Python, where gedit&#8217;s syntax highlight won&#8217;t highlight both (I&#8217;m sure there might be a better way to doing it but I haven&#8217;t found it yet). You can download the plugin from here: http://svn.simplesideias.com.br/general/gedit/plugins/quickhighlightmode/. Use svn export and place the files in ~/.gnome2/gedit/plugins/. Once installed and enabled, press Ctrl+Shift+H to use. Type the name of the language you want to use and hit enter.</p>
<p><strong>Symbol Browser: </strong>The last plugin allows you to quickly browse through a list of functions and variables in the current file. The installation of this plugin requires a bit more work because of a dependency. First, you need to install <a href="http://ctags.sourceforge.net/">exuberant ctags</a>. You can do this from your terminal by typing:</p>
<p><code>sudo apt-get install exuberant-ctags</code></p>
<p>Once exuberant ctags is installed, you can download the Symbol Browser plugin from <a href="http://sourceforge.net/projects/symbol-browser/">here</a>. If you can use the binary files available here (AMD64), then just extract it to ~/.gnome2/gedit/plugins/ and enable it. Otherwise, you will have to compile it. The author of Symbol Browser has a guide on doing so <a href="http://www.micahcarrick.com/11-14-2007/gedit-symbol-browser-plugin.html#2">here</a>.</p>
<p>Now you have an excellent development editor for writing PHP, or really any language. It does not do any advanced things such as project management, building, etc. (Unless you can write up plugins to do it for you) but it does its job, and does it well. One annoying thing is <a href="https://bugs.launchpad.net/ubuntu/+source/gedit/+bug/176465">this bug</a> that happens if you use gedit a lot. Just restart it and you should be back to par (I can&#8217;t wait until its fixed!)</p>
<p>I hope that this list of plugins will help you get the best editor for your development. Let us know how you like it. If you have any suggestions or additions to this list, feel free to post a comment below.</p>
<h3  class="related_post_title">You Might Also Like These</h3><ul class="related_post"><li><a href="http://www.andphp.com/2008/02/14/a-look-at-svn-for-web-development/" title="A Look at SVN for Web Development">A Look at SVN for Web Development</a></li><li><a href="http://www.andphp.com/2008/04/07/orlando-php-user-group/" title="Orlando PHP User Group">Orlando PHP User Group</a></li><li><a href="http://www.andphp.com/2008/02/14/nine-practical-ways-to-use-firefoxs-web-developer-extension/" title="Nine Practical Ways to Use Firefox&#8217;s Web Developer Extension">Nine Practical Ways to Use Firefox&#8217;s Web Developer Extension</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2008/02/23/gedit-for-php-development-textmate-ish/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>A Look at SVN for Web Development</title>
		<link>http://www.andphp.com/2008/02/14/a-look-at-svn-for-web-development/</link>
		<comments>http://www.andphp.com/2008/02/14/a-look-at-svn-for-web-development/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 21:11:29 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.andphp.com/2008/02/14/a-look-at-svn-for-web-development/</guid>
		<description><![CDATA[Every web developer, no matter what language you use should know the workings of a version control system.  The one I most often use when working on projects is Subversion, aka SVN.  SVN not only helps me keep my code organized, it also allows for others that are working with me to know [...]]]></description>
			<content:encoded><![CDATA[<p>Every web developer, no matter what language you use should know the workings of a version control system.  The one I most often use when working on projects is Subversion, aka SVN.  SVN not only helps me keep my code organized, it also allows for others that are working with me to know of changes I have made to the source and vise versa.  This allows multiple developers to work on the same source, fixing different bugs, simultaneously.</p>
<p>During my encounters with SVN I have tested many different uses and techniques to keep the development, staging, and stable environments separate but parallel to each other.  I worked out my own ways of using SVN, which I will leave for another post.  I can however say that Dan Previte&#8217;s post at null-logic [<a href="http://null-logic.net/blog/2008/02/14/using-subversion-for-web-development/" title="Using Subversion for Web Development"  target="_blank">Using Subversion for Web Development</a>] brings out some interesting points on how to use SVN for Web Development, and I agree with his method of using Subversion. One of the things I would like to enforce is the use of a testing checklist that needs to be executed on the staging environment, and hopefully the person doing this is not used to the source code.  It is always good to have someone who is not necessarily involved in the development process doing the testing of the product.</p>
<p>You can also check out the SVN book which can be found <a href="http://svnbook.red-bean.com/" title="Subversion"  target="_blank">here</a> and is free.</p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2008/02/14/nine-practical-ways-to-use-firefoxs-web-developer-extension/" title="Nine Practical Ways to Use Firefox&#8217;s Web Developer Extension">Nine Practical Ways to Use Firefox&#8217;s Web Developer Extension</a></li><li><a href="http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/" title="iBuldings.com PHP 5.3 Migrating Guide">iBuldings.com PHP 5.3 Migrating Guide</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2008/02/14/a-look-at-svn-for-web-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nine Practical Ways to Use Firefox&#8217;s Web Developer Extension</title>
		<link>http://www.andphp.com/2008/02/14/nine-practical-ways-to-use-firefoxs-web-developer-extension/</link>
		<comments>http://www.andphp.com/2008/02/14/nine-practical-ways-to-use-firefoxs-web-developer-extension/#comments</comments>
		<pubDate>Thu, 14 Feb 2008 20:42:14 +0000</pubDate>
		<dc:creator>Luiz</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://www.andphp.com/2008/02/14/nine-practical-ways-to-use-firefoxs-web-developer-extension/</guid>
		<description><![CDATA[The people over at Six Revisions have came up with a cool and practical list of 9 uses for Firefox&#8217;s Web Developer Extension. I myself use it almost everytime while working on a project, most of the things I use it for are on this list, and I found a few new things like the auto [...]]]></description>
			<content:encoded><![CDATA[<p>The people over at Six Revisions have came up with a cool and practical list of 9 uses for Firefox&#8217;s Web Developer Extension. I myself use it almost everytime while working on a project, most of the things I use it for are on this list, and I found a few new things like the auto form populate.  Face it, no one likes to fill forms over and over again when testing them. Go ahead and check out their post <a href="http://sixrevisions.com/rapid-development/9-practical-ways-to-enhance-your-web-development-using-the-firefox-web-developer-extension/" title="9 Practical Ways to Enhance your Web Development Using the Firefox Web Developer Extension">here</a> </p>
<h3  class="related_post_title">Related Posts</h3><ul class="related_post"><li><a href="http://www.andphp.com/2008/02/14/a-look-at-svn-for-web-development/" title="A Look at SVN for Web Development">A Look at SVN for Web Development</a></li><li><a href="http://www.andphp.com/2009/06/30/ibuldings-com-php-5-3-migrating-guide/" title="iBuldings.com PHP 5.3 Migrating Guide">iBuldings.com PHP 5.3 Migrating Guide</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andphp.com/2008/02/14/nine-practical-ways-to-use-firefoxs-web-developer-extension/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
