<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Server-Side Magazine</title>
	
	<link>http://www.serversidemagazine.com</link>
	<description>All the server-side tutorials, how-to, tips and tricks you can find</description>
	<lastBuildDate>Fri, 07 Aug 2009 12:30:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/server-side-magazine" type="application/rss+xml" /><feedburner:emailServiceId>server-side-magazine</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>How to Convert Array Notation to Object Notation</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/xH9cGpgsA2Y/how-to-convert-array-notation-to-object-notation</link>
		<comments>http://www.serversidemagazine.com/php/how-to-convert-array-notation-to-object-notation#comments</comments>
		<pubDate>Fri, 07 Aug 2009 12:30:07 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=452</guid>
		<description><![CDATA[So do you want to convert an array to an object for no particular reason?
I worked on a project where I wrote this code. The class below eats up to 2536 bytes of memory, but make sure to read this whole post for the surprise!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class array_to_object
&#123;
    function __construct&#40;$data=null, &#38;$node=null&#41;
    [...]


Related posts:<ol><li><a href='http://www.serversidemagazine.com/php/how-to-inherit-from-multiple-objects-workaround' rel='bookmark' title='Permanent Link: How to Inherit from Multiple Objects (Workaround)'>How to Inherit from Multiple Objects (Workaround)</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>So do you want to convert an <strong>array</strong> to an <strong>object</strong> for no particular reason?</p>
<p>I worked on a project where I wrote this code. The class below eats up to 2536 bytes of memory, but <strong>make sure to read this whole post for the surprise!</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> array_to_object
<span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$node</span><span style="color: #339933;">=</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$data</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$value</span> <span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #000088;">$node</span> <span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#123;</span>
                    <span style="color: #000088;">$node</span> <span style="color: #339933;">=&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
&nbsp;
                <span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> stdClass<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span>__construct<span style="color: #009900;">&#40;</span><span style="color: #000088;">$value</span><span style="color: #339933;">,</span><span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #000088;">$node</span> <span style="color: #009900;">&#41;</span>
                <span style="color: #009900;">&#123;</span>
                    <span style="color: #000088;">$node</span> <span style="color: #339933;">=&amp;</span> <span style="color: #000088;">$this</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
&nbsp;
                <span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #000088;">$key</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$value</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>The code above creates a new <em>stdClass</em>, PHP&#8217;s built-in class and uses it to create properties out of the array&#8217;s keys inside the object.</p>
<p>Basically, this <em><strong>$arr['hello'] = &#8216;world!&#8217;;</strong></em> becomes this <em><strong>$arr->hello = &#8216;world!&#8217;;</strong></em></p>
<p><strong>Now, here comes the surprise!</strong></p>
<h3>Hardcore one liner</h3>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> array2obj<span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span> 
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span> ? <span style="color: #009900;">&#40;</span>object<span style="color: #009900;">&#41;</span> <span style="color: #990000;">array_map</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FUNCTION__</span><span style="color: #339933;">,</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #000088;">$data</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p><strong>The function above does the same thing</strong>, except it uses 72 bytes of memory and it&#8217;s much more optimized!</p>


<p>Related posts:<ol><li><a href='http://www.serversidemagazine.com/php/how-to-inherit-from-multiple-objects-workaround' rel='bookmark' title='Permanent Link: How to Inherit from Multiple Objects (Workaround)'>How to Inherit from Multiple Objects (Workaround)</a></li></ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=xH9cGpgsA2Y:KRaXGTWFe30:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=xH9cGpgsA2Y:KRaXGTWFe30:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=xH9cGpgsA2Y:KRaXGTWFe30:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=xH9cGpgsA2Y:KRaXGTWFe30:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=xH9cGpgsA2Y:KRaXGTWFe30:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=xH9cGpgsA2Y:KRaXGTWFe30:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=xH9cGpgsA2Y:KRaXGTWFe30:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=xH9cGpgsA2Y:KRaXGTWFe30:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/xH9cGpgsA2Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/php/how-to-convert-array-notation-to-object-notation/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/php/how-to-convert-array-notation-to-object-notation</feedburner:origLink></item>
		<item>
		<title>Urgent Patch for Visual Studio and Other Tools</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/L0ryzDuHtNk/urgent-patch-for-visual-studio-and-other-tools</link>
		<comments>http://www.serversidemagazine.com/news/urgent-patch-for-visual-studio-and-other-tools#comments</comments>
		<pubDate>Tue, 04 Aug 2009 12:30:29 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=446</guid>
		<description><![CDATA[Microsoft released two out-of-cycle patches on July 27, 2009, one for IE and one for Visual Studio. Microsoft normally only release patches on the second Tuesday of the month. Only urgent patches are issued outside this cycle, and these patches should normally be installed ASAP.

As of Aug 4th, there have been 192 reports of a [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Microsoft released two out-of-cycle patches on July 27, 2009, one for IE and one for Visual Studio.</strong> Microsoft normally only release patches on the second Tuesday of the month. Only urgent patches are issued outside this cycle, and these patches should normally be installed ASAP.</p>
<p><span id="more-446"></span></p>
<p>As of Aug 4th, there have been 192 reports of a problem with security patch VS90SP1-KB971092-x86.exe, whereby if C++ components were not installed with Visual Studio, the security patch will fail with the message &#8220;VC Libraries QFE Patch does not apply, or is blocked by another condition on your system.&#8221;</p>
<p>To report the problem and to find a suggested workaround please go to: </p>
<ul>
<li><a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=478117">KB971092 won&#8217;t install</a></li>
</ul>
<p>Microsoft Connect have posted the following concerning this fix: &#8220;We are rerouting this issue to the appropriate group within the Visual Studio Product Team for triage and resolution. These specialized experts will follow-up with your issue.&#8221; However as of 4 August, no follow-up has been posted.</p>
<h3>Editing HTML with Microsoft Expression Web 3</h3>
<p>As an experiment, I am editing this entry with Expression Web 3. Whilst if does lacks the folding editor feature of Visual Studio 2008, it is a capable editor. It does have a good spell-checker, something is missing from VS2008. Whilst Expression Web now has source control, it is only to Team Server.</p>
<h3>An alternative reader for PDFs</h3>
<p>I am trying out an alternative PDF reader from Foxit, one of many compact and fast alternatives now available to Acrobat. Why not Acrobat to read PDFs? Acrobat does not provide a simple download, but requires a boot-strapper.</p>
<ul>
<li><a href="http://www.foxitsoftware.com/downloads/index.php">http://www.foxitsoftware.com/downloads/index.php</a></li>
</ul>
<h3>NUnit 2.5.1</h3>
<p>NUnit 2.5.1 has now been released. In the new future, I will be upgrading my projects to use it. More about it next time.</p>
<ul>
<li><a href="http://www.nunit.org/index.php?p=download">http://www.nunit.org/index.php?p=download</a></li>
</ul>
<div class="author clearfix">
	<span><strong><a href="https://mvp.support.microsoft.com/profile/Clive.Chinery">View my MVP profile at https://mvp.support.microsoft.com/profile/Clive.Chinery</a></strong></span>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=L0ryzDuHtNk:uuU0L7qjwAg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=L0ryzDuHtNk:uuU0L7qjwAg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=L0ryzDuHtNk:uuU0L7qjwAg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=L0ryzDuHtNk:uuU0L7qjwAg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=L0ryzDuHtNk:uuU0L7qjwAg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=L0ryzDuHtNk:uuU0L7qjwAg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=L0ryzDuHtNk:uuU0L7qjwAg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=L0ryzDuHtNk:uuU0L7qjwAg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/L0ryzDuHtNk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/news/urgent-patch-for-visual-studio-and-other-tools/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/news/urgent-patch-for-visual-studio-and-other-tools</feedburner:origLink></item>
		<item>
		<title>8 More Useful Tools for ASP.NET</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/F3JQZjqWyik/8-more-useful-tools-for-asp-net</link>
		<comments>http://www.serversidemagazine.com/asp-net/8-more-useful-tools-for-asp-net#comments</comments>
		<pubDate>Thu, 30 Jul 2009 23:05:20 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[ASP.Net]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=439</guid>
		<description><![CDATA[This time I want to deal with some other useful tools for ASP.NET developers that I have used on a regular basis. Again, before using for commercial purposes, please check the license information. 

1. Expresso
This allows the development, analysis and testing of regular expressions. It also provides a useful library of expressions. Before pasting a [...]


Related posts:<ol><li><a href='http://www.serversidemagazine.com/asp-net/useful-tools-on-codeplex-and-elsewhere' rel='bookmark' title='Permanent Link: Useful tools on CodePlex and elsewhere'>Useful tools on CodePlex and elsewhere</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>This time I want to deal with some other useful tools for ASP.NET developers that I have used on a regular basis. Again, before using for commercial purposes, please check the license information. </p>
<p><span id="more-439"></span></p>
<h3>1. Expresso</h3>
<p><strong>This allows the development, analysis and testing of regular expressions.</strong> It also provides a useful library of expressions. Before pasting a regular expression into your code, you should test them. It needs free registration to use beyond the trial period.</p>
<ul>
<li><a href="http://www.ultrapico.com/Expresso.htm">License</a></li>
<li><a href="http://www.ultrapico.com/ExpressoDownload.htm">Download</a></li>
</ul>
<h3>2. NUnit</h3>
<p>&quot;<strong>NUnit is a unit-testing framework for all .Net languages.</strong> Initially ported from JUnit, the current production release, version 2.5, is the sixth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities.&quot;</p>
<p><strong>Why should you unit test? Unit testing allows you to test your code against known values and check its performance.</strong> Once written, unit tests can be run whenever required and never require a mug of coffee to keep them awake. If there is any concern about a given situation, you can set up a unit test to reproduce that scenario and check that the code behaves as expected.</p>
<p>The bottom line however is that a high code coverage set of unit tests allow you to sleep well at night!</p>
<ul>
<li><a href="http://www.opensource.org/licenses/zlib-license.html">License</a></li>
<li><a href="http://www.nunit.org/index.php?p=download">Download</a></li>
</ul>
<h3>3. Programmers File Editor</h3>
<p><strong>Programmers File Editor is a simple multi-window text editor.</strong> Virtually any editor is better than Notepad and PFE wins not just be being able to editor view more than one file at once but you can write macros in it. It also the highly unusual feature of being able to run DOS command and capture the output.</p>
<ul>
<li><a href="http://www.lancs.ac.uk/staff/steveb/cpaap/pfe/">License</a></li>
<li><a href="http://www.lancs.ac.uk/staff/steveb/cpaap/pfe/">Download</a></li>
</ul>
<h3>4. Component One Intellispell Community Edition</h3>
<p>This Add-on for Visual Studio allows spell-checking of your HTML and other program files, albeit one file at a time.</p>
<ul>
<li><a href="http://www.componentone.com/SuperProducts/IntelliSpell/">License</a></li>
<li><a href="http://www.componentone.com/SuperProducts/IntelliSpell/">Download</a></li>
</ul>
<h3>5. GhostDoc</h3>
<p>This is an Add-on for Visual Studio 2005 and 2008 (2010 is supported in the latest). It allows you to create skeleton XML documentation with just a few blanks for you to fill in.</p>
<ul>
<li><a href="http://submain.com/products/ghostdoc.aspx">License</a></li>
<li><a href="http://submain.com/products/ghostdoc.aspx">Download</a></li>
</ul>
<h3>6. Microsoft FxCop 1.36</h3>
<p><strong>FxCop is a Microsoft tool for static checking of compiled code.</strong> Whilst at times it just nags over trivial points, even one of the more serious problems left unfixed can cause problems in production that may not apparent during testing. For example a missing dispose can give rise to problems during intensive use of an application.</p>
<ul>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&#038;DisplayLang=en">License</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9aeaa970-f281-4fb0-aba1-d59d7ed09772&#038;DisplayLang=en">Download</a></li>
</ul>
<h3>7. Microsoft Source Analysis for C# a.k.a. StyleCop</h3>
<p><strong>Style Cop provides a source checker for C# that complements FXCOP.</strong> Whilst some of its rules requiring extraneous blank lines are best turned off, it does provide a valuable check of source code. It fails to find xml file headers if in a region. FxCop and StyleCop are both good servants but poor masters as they will both find problems but it requires the skill of the programmer to determine if a fix is required or if the warning should be ignored.</p>
<ul>
<li><a href="http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425">License</a></li>
<li><a href="http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425">Download</a></li>
</ul>
<h3>8. Secunia Personal Software Inspector</h3>
<p>Like Windows Update, it scans the software on your machine, but this warns not just about some windows programs but about many other programs such as Firefox and Microsoft Office.</p>
<p>This item is free only for personal and not commercial use.</p>
<ul>
<li><a href="http://secunia.com/vulnerability_scanning/personal/">License</a></li>
<li><a href="http://secunia.com/vulnerability_scanning/personal">Download</a></li>
</ul>
<div class="author clearfix">
	<span><strong><a href="https://mvp.support.microsoft.com/profile/Clive.Chinery">View my MVP profile at https://mvp.support.microsoft.com/profile/Clive.Chinery</a></strong></span>
</div>


<p>Related posts:<ol><li><a href='http://www.serversidemagazine.com/asp-net/useful-tools-on-codeplex-and-elsewhere' rel='bookmark' title='Permanent Link: Useful tools on CodePlex and elsewhere'>Useful tools on CodePlex and elsewhere</a></li></ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=F3JQZjqWyik:RJ2eCQpu7VI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=F3JQZjqWyik:RJ2eCQpu7VI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=F3JQZjqWyik:RJ2eCQpu7VI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=F3JQZjqWyik:RJ2eCQpu7VI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=F3JQZjqWyik:RJ2eCQpu7VI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=F3JQZjqWyik:RJ2eCQpu7VI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=F3JQZjqWyik:RJ2eCQpu7VI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=F3JQZjqWyik:RJ2eCQpu7VI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/F3JQZjqWyik" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/asp-net/8-more-useful-tools-for-asp-net/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/asp-net/8-more-useful-tools-for-asp-net</feedburner:origLink></item>
		<item>
		<title>Useful tools on CodePlex and elsewhere</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/p1QvuYZowiE/useful-tools-on-codeplex-and-elsewhere</link>
		<comments>http://www.serversidemagazine.com/asp-net/useful-tools-on-codeplex-and-elsewhere#comments</comments>
		<pubDate>Tue, 28 Jul 2009 11:55:38 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[ASP.Net]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=427</guid>
		<description><![CDATA[In this my first article for this website, I want to deal with some of the many useful projects on codeplex.com for ASP.NET developers. Before using for commercial purposes, please check the license information.

Codeplex is an open source projects hosting website. You can create, share, contribute an use the projects hosted on the website and [...]


Related posts:<ol><li><a href='http://www.serversidemagazine.com/asp-net/8-more-useful-tools-for-asp-net' rel='bookmark' title='Permanent Link: 8 More Useful Tools for ASP.NET'>8 More Useful Tools for ASP.NET</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>In this my first article for this website, I want to deal with some of the many useful projects on <a href="http://www.codeplex.com">codeplex.com</a> for ASP.NET developers. Before using for commercial purposes, please check the license information.</p>
<p><span id="more-427"></span></p>
<p><strong>Codeplex is an open source projects hosting website. You can create, share, contribute an use the projects hosted on the website and even provide feedback.</strong></p>
<h3>1. Sandcastle Documentation Compiler for Dot Net Libraries</h3>
<p>Sandcastle produces help files in a number of formats from XML comments in C# or VB.NET projects. If you unfamiliar with the syntax of XML comments, please see <a href="http://jelle.druyts.net/2005/01/16/XMLCommentsQuickReference.aspx" title="jelle.druyts.net/2005/01/16/XMLCommentsQuickReference.aspx">jelle.druyts.net/2005/01/16/XMLCommentsQuickReference.aspx</a></p>
<p>To set it up you need the next project on my list.</p>
<ul>
<li><a href="http://sandcastle.codeplex.com/license">License</a></li>
<li><a href="http://sandcastle.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=13873">Download</a></li>
</ul>
<h3>2. Sandcastle Help File Builder</h3>
<p>The help file builder provides a GUI interface to setup and compile Sandcastle help file projects.</p>
<ul>
<li><a href="http://shfb.codeplex.com/license">License</a></li>
<li><a href="http://shfb.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24422">Download</a></li>
</ul>
<h3>3. HTML Agility Pack</h3>
<p>This provides tools for programmatically fetching HTML pages and extracting information from them.</p>
<ul>
<li><a href="http://htmlagilitypack.codeplex.com/license">License</a></li>
<li><a href="http://htmlagilitypack.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=272">Download</a></li>
</ul>
<h3>4. HTML Text Writer 2</h3>
<p><strong>This utility program allow you to convert HTML into C# or VB.NET code to emit the HTML.</strong> This is a first step to writing a custom control where the nature of the HTML to be produced cannot be done by the built-in controls. This application is purposely licensed LGPL to allow both Commercial and Non-Commercial use.</p>
<ul>
<li><a href="http://htmltextwriter2.codeplex.com/license">License</a></li>
<li><a href="http://htmltextwriter2.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25114">Download</a></li>
</ul>
<h3>5. Common Data</h3>
<p><strong>This provides a series of components for building ASP.NET web sites covering such functions as hashing password, encrypting, decrypting and filtering user input.</strong> Much of it is available in both C# and VB.NET. This application is purposely licensed LGPL to allow both Commercial and Non-Commercial use.</p>
<ul>
<li><a href="http://commondata.codeplex.com/license">License</a></li>
<li><a href="http://commondata.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30501">Download</a></li>
</ul>
<h3>6. XHTML Fixes</h3>
<p>This provides a demonstration of some simple fixes to achieve XHTML compliance as measured by the W3C tests at <a href="http://validator.w3.org/" title="validator.w3.org">validator.w3.org</a>. This application is purposely licensed LGPL to allow both Commercial and Non-Commercial use.</p>
<ul>
<li><a href="http://xhtmlfix.codeplex.com/license">License</a></li>
<li><a href="http://xhtmlfix.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=30676">Download</a></li>
</ul>
<h3>7. Postscript &#8211; CodeBurner for Firefox</h3>
<p><strong>This free add-on for Firefox from <a href="http://www.sitepoint.com" title="sitepoint.com">SitePoint</a> allows lookup of HTML elements and how they are supported across browsers.</strong> The SitePoint Site states: &quot;The license that comes with it is about how you can redistribute the extension, not how you can use it yourself. Once you&#8217;ve installed it in Firefox you can use it however you want &#8211;  there&#8217;s no restriction on what kind of projects you can use it with.&quot;</p>
<ul>
<li><a href="http://tools.sitepoint.com/codeburner/firefox/">License</a></li>
<li><a href="http://tools.sitepoint.com/codeburner/firefox/">Download</a></li>
</ul>
<div class="author clearfix">
	<span><strong><a href="https://mvp.support.microsoft.com/profile/Clive.Chinery">View my MVP profile at https://mvp.support.microsoft.com/profile/Clive.Chinery</a></strong></span>
</div>


<p>Related posts:<ol><li><a href='http://www.serversidemagazine.com/asp-net/8-more-useful-tools-for-asp-net' rel='bookmark' title='Permanent Link: 8 More Useful Tools for ASP.NET'>8 More Useful Tools for ASP.NET</a></li></ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=p1QvuYZowiE:-LPqw_dPfdo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=p1QvuYZowiE:-LPqw_dPfdo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=p1QvuYZowiE:-LPqw_dPfdo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=p1QvuYZowiE:-LPqw_dPfdo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=p1QvuYZowiE:-LPqw_dPfdo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=p1QvuYZowiE:-LPqw_dPfdo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=p1QvuYZowiE:-LPqw_dPfdo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=p1QvuYZowiE:-LPqw_dPfdo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/p1QvuYZowiE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/asp-net/useful-tools-on-codeplex-and-elsewhere/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/asp-net/useful-tools-on-codeplex-and-elsewhere</feedburner:origLink></item>
		<item>
		<title>Focus On</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/G930av8YRXg/focus-on</link>
		<comments>http://www.serversidemagazine.com/news/focus-on#comments</comments>
		<pubDate>Tue, 14 Jul 2009 13:33:43 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=413</guid>
		<description><![CDATA[
SitePoint &#8211; How to Use PHP Namespaces part1, part 2 and part 3
PHP 10.0 Blog &#8211; PHP Performance
Cal Evans Blog &#8211; XAMPP, PHP 5.3, PEAR and PHAR (what a mess)



Related posts:PHP 5.3


Related posts:<ol><li><a href='http://www.serversidemagazine.com/news/php-5-3' rel='bookmark' title='Permanent Link: PHP 5.3'>PHP 5.3</a></li></ol>]]></description>
			<content:encoded><![CDATA[<ul>
<li>SitePoint &#8211; How to Use PHP Namespaces <a href="http://www.sitepoint.com/blogs/2009/07/13/php-53-namespaces-basics/">part1</a>, <a href="http://www.sitepoint.com/blogs/2009/07/14/php-namespaces-import-alias-resolution/">part 2</a> and <a href="http://www.sitepoint.com/blogs/2009/07/15/how-to-use-php-namespaces-part-3-keywords-and-autoloading/">part 3</a></li>
<li>PHP 10.0 Blog &#8211; <a href="http://php100.wordpress.com/2009/07/13/php-performance/">PHP Performance</a></li>
<li>Cal Evans Blog &#8211; <a href="http://blog.calevans.com/2009/07/11/xampp-php-5-3-pear-and-phar-what-a-mess/">XAMPP, PHP 5.3, PEAR and PHAR (what a mess)</a></li>
</ul>


<p>Related posts:<ol><li><a href='http://www.serversidemagazine.com/news/php-5-3' rel='bookmark' title='Permanent Link: PHP 5.3'>PHP 5.3</a></li></ol></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=G930av8YRXg:bEZYkjE8EaU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=G930av8YRXg:bEZYkjE8EaU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=G930av8YRXg:bEZYkjE8EaU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=G930av8YRXg:bEZYkjE8EaU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=G930av8YRXg:bEZYkjE8EaU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=G930av8YRXg:bEZYkjE8EaU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=G930av8YRXg:bEZYkjE8EaU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=G930av8YRXg:bEZYkjE8EaU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/G930av8YRXg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/news/focus-on/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/news/focus-on</feedburner:origLink></item>
		<item>
		<title>Creating a PHP 5.3 Virtual Development Environment</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/FIArt7Of5U0/creating-a-php-5-3-virtual-development-environment</link>
		<comments>http://www.serversidemagazine.com/php/creating-a-php-5-3-virtual-development-environment#comments</comments>
		<pubDate>Mon, 13 Jul 2009 14:05:55 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=363</guid>
		<description><![CDATA[Since the official release of PHP 5.3 many developers want to test the new features out, but still don&#8217;t want to mess with the old PHP installation. Same thing goes for me, I don&#8217;t want to mess up my existing PHP installation yet, but eager to test namespaces, late static binding and closures.
So let&#8217;s create [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Since the official release of PHP 5.3 many developers want to test the new features out, but still don&#8217;t want to mess with the old PHP installation.</strong> Same thing goes for me, I don&#8217;t want to mess up my existing PHP installation yet, but eager to test <a href="http://php.net/namespaces" title="php.net/namespaces">namespaces</a>, <a href="http://php.net/lsb" title="php.net/lsb">late static binding</a> and <a href="http://www.php.net/manual/en/functions.anonymous.php" title="php.net/manual/en/functions.anonymous.php">closures</a>.</p>
<p>So let&#8217;s create a virtual development environment using the latest software bundles.</p>
<p><span id="more-363"></span></p>
<p>With the help of this tutorial you will install the following softwares:</p>
<ul>
<li><a href="http://www.virtualbox.org/" title="virtualbox.org">VirtualBox</a></li>
<li><a href="http://httpd.apache.org/download.cgi" title="httpd.apache.org">Apache 2.2.x</a></li>
<li><a herf="http://dev.mysql.com/downloads/mysql/5.0.html" title="dev.mysql.com">MySQL 5.0</a></li>
<li><a herf="http://www.ubuntu.com/getubuntu/download" title="www.ubuntu.com">Ubuntu 9.04</a> as the guest OS</li>
<li>&#8230;and of course <a herf="http://www.php.net/downloads.php" title="www.php.net">PHP 5.3</a></li>
</ul>
<h3>1. Install VirtualBox</h3>
<p>I prefer VirtualBox from Sun mainly, because it&#8217;s free and it&#8217;s easy to work with. You can use another virtualization product such as <a herf="http://www.vmware.com/" title="vmware.com">VMWare</a> or <a href="http://www.parallels.com/eu/" title="www.parallels.com">Parallels</a> for Mac OS X.</p>
<p>If you want to go with VirtualBox then download it from the link above or from <a href="http://www.virtualbox.org/wiki/Downloads" title="virtualbox.org">this link</a>. I happen to have it already installed on my Mac, so I won&#8217;t go into details.</p>
<h3>2. Download Ubuntu</h3>
<p>This step is pretty straightforward. Download the ISO image from this <a href="http://mirrors.us.kernel.org/ubuntu-releases/jaunty/ubuntu-9.04-desktop-i386.iso">direct link</a>.</p>
<h3>3. Setup Ubuntu in VirtualBox</h3>
<p>Once downloaded you have to add the ISO file as a CD/DVD image in Virtualbox. <strong>Open the Virtual Media Manager (File->Virtual Media Manager) window, open the CD/DVD Images tab and click Add</strong></p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/setup-ubuntu-in-virtualbox.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/setup-ubuntu-in-virtualbox.jpg" alt="Setup Ubuntu in VirtualBox" /></a></p>
<p>Once this is ready, we have to create a new virtual machine to load it successfully. <strong>Go to the main VirtualBox window and select New.</strong> Name it to <em>Ubuntu PHP 5.3</em> and select <em>Linux</em> for operating system and <em>Ubuntu</em> for the version.</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/create-ubuntu-virtual-machine1.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/create-ubuntu-virtual-machine1.jpg" alt="Create Ubuntu Virtual Machine 1" /></a></p>
<p>Next, select at least 512 MB base memory size.</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/create-ubuntu-virtual-machine2.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/create-ubuntu-virtual-machine2.jpg" alt="Create Ubuntu Virtual Machine 2" /></a></p>
<p>On the next window make sure you select the <em>Create new hard disk</em> option.</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/create-ubuntu-virtual-machine3.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/create-ubuntu-virtual-machine3.jpg" alt="Create Ubuntu Virtual Machine 3" /></a></p>
<p>Once finished, mount the Ubuntu ISO by going to the settings page of the virtual machine, selecting <strong>Storage -> CD/DVD-ROM</strong> tab. On this window <strong>check Mount CD/DVD Drive</strong> and select the ISO image file.</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/mount-ubuntu-iso-image.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/mount-ubuntu-iso-image.jpg" alt="Mount Ubuntu ISO Image file" /></a></p>
<p><strong>Finally, start the virtual machine.</strong></p>
<h3>4. Install Ubuntu inside the virtual machine</h3>
<p>I will show you a quick overview of the installation process.</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation1.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation1.jpg" alt="VirtualBox Ubuntu Installation 1" /></a></p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation2.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation2.jpg" alt="VirtualBox Ubuntu Installation 2" /></a></p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation3.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation3.jpg" alt="VirtualBox Ubuntu Installation 3" /></a></p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation4.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/virtualbox-ubuntu-installation4.jpg" alt="VirtualBox Ubuntu Installation 4" /></a></p>
<p>Once finished installing the OS <strong>make sure you shut it down and unmount the ISO image.</strong></p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/unmount-ubuntu-iso-file.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/unmount-ubuntu-iso-file.jpg" alt="Unmount Ubuntu ISO File" /></a></p>
<h3>5. Install Apache and MySQL</h3>
<p>Thanks to <a herf="http://www.brandonsavage.net/" title="brandonsavage.net">Brandon Savage</a> for writing a <a href="http://www.brandonsavage.net/installing-php-5-3-on-ubuntu/" title="brandonsavage.net/installing-php-5-3-on-ubuntu">tutorial</a> on installing and compiling Apache, MySQL and PHP 5.3 on Ubuntu. I will take the steps from that tutorial and illustrate it here.</p>
<p>Installing Apache and MySQL is pretty straightforward. Just <strong>open the Terminal and write the following lines</strong>.</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/ubuntu-open-terminal.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/ubuntu-open-terminal.jpg" alt="Open Terminal in Ubuntu" /></a></p>
<p>The first line installs Apache 2.2.x and the second line installs MySQL 5.0. Alternatively you can skip writing <a href="http://en.wikipedia.org/wiki/Sudo" title="wikipedia.org/wiki/Sudo">sudo</a> if your user has root privileges.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> apache2 apache2-mpm-prefork apache2-prefork-dev apache2-utils apache2.2-common
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> mysql-client mysql-client-<span style="color: #000000;">5.0</span> mysql-common mysql-server mysql-server-<span style="color: #000000;">5.0</span> mysql-server-core-<span style="color: #000000;">5.0</span></pre></td></tr></table></div>

<p><a href="http://www.serversidemagazine.com/images/php53-vde/ubuntu-install-apache.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/ubuntu-install-apache.jpg" alt="Install Apache in Ubuntu" /></a></p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/ubuntu-install-mysql.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/ubuntu-install-mysql.jpg" alt="Install MySQL in Ubuntu" /></a></p>
<p>The tricky part is installing the necessary libraries in order for PHP 5.3 to function correctly. Fortunately Brandon Savage deals with this issue too. Just write the following line into the console:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">aptitude</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libtidy-dev curl libcurl4-openssl-dev libcurl3 
libcurl3-gnutls zlib1g zlib1g-dev libxslt1-dev libzip-dev libzip1 libxml2 
libsnmp-base libsnmp15 libxml2-dev libsnmp-dev libjpeg62 libjpeg62-dev 
libpng12-<span style="color: #000000;">0</span> libpng12-dev zlib1g zlib1g-dev libfreetype6 libfreetype6-dev 
libbz2-dev libxpm4-dev libmcrypt-dev libmcrypt4</pre></div></div>

<h3>6. Installing PHP 5.3</h3>
<p>First, download the source from the website. Just write the following commands: </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>us3.php.net<span style="color: #000000; font-weight: bold;">/</span>get<span style="color: #000000; font-weight: bold;">/</span>php-5.3.0.tar.gz<span style="color: #000000; font-weight: bold;">/</span>from<span style="color: #000000; font-weight: bold;">/</span>this<span style="color: #000000; font-weight: bold;">/</span>mirror
<span style="color: #c20cb9; font-weight: bold;">tar</span> xvfz php-5.3.0.tar.gz</pre></td></tr></table></div>

<p><a href="http://www.serversidemagazine.com/images/php53-vde/ubuntu-get-php53.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/ubuntu-get-php53.jpg" alt="Download PHP 5.3 in Ubuntu" /></a></p>
<p><strong>Before executing the following configure command restart your virtual machine</strong>, because there is the possibility that Apache or MySQL is not properly loaded.</p>
<p>After restarting go into the folder where PHP was extracted. Mine is <em>~/php-5.3.0</em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> php-5.3.0</pre></td></tr></table></div>

<p>Then execute the configure command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>configure –with-apxs2=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>apxs2 –with-mysql=<span style="color: #000000; font-weight: bold;">/</span>usr 
–with-mysqli=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>mysql_config –with-pgsql=<span style="color: #000000; font-weight: bold;">/</span>usr –with-tidy=<span style="color: #000000; font-weight: bold;">/</span>usr 
–with-curl=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin –with-curlwrappers –with-openssl-dir=<span style="color: #000000; font-weight: bold;">/</span>usr –with-zlib-dir=<span style="color: #000000; font-weight: bold;">/</span>usr 
–enable-mbstring –with-xpm-dir=<span style="color: #000000; font-weight: bold;">/</span>usr –with-pdo-pgsql=<span style="color: #000000; font-weight: bold;">/</span>usr –with-pdo-mysql=<span style="color: #000000; font-weight: bold;">/</span>usr 
–with-xsl=<span style="color: #000000; font-weight: bold;">/</span>usr –with-ldap –with-xmlrpc –with-iconv-dir=<span style="color: #000000; font-weight: bold;">/</span>usr –with-snmp=<span style="color: #000000; font-weight: bold;">/</span>usr 
–enable-exif –enable-calendar –with-bz2=<span style="color: #000000; font-weight: bold;">/</span>usr –with-mcrypt=<span style="color: #000000; font-weight: bold;">/</span>usr –with-gd 
–with-jpeg-dir=<span style="color: #000000; font-weight: bold;">/</span>usr –with-png-dir=<span style="color: #000000; font-weight: bold;">/</span>usr –with-zlib-dir=<span style="color: #000000; font-weight: bold;">/</span>usr –with-freetype-dir=<span style="color: #000000; font-weight: bold;">/</span>usr 
–enable-mbstring –enable-zip –with-pear</pre></div></div>

<p>You should see something like this:</p>
<p><a href="http://www.serversidemagazine.com/images/php53-vde/ubuntu-execute-configure.jpg"><img src="http://www.serversidemagazine.com/images/php53-vde/ubuntu-execute-configure.jpg" alt="Execute Configure Command" /></a></p>
<p>Create the make files by executing the <em>make</em> command:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span></pre></td></tr></table></div>

<p>Then compile and install PHP:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-i</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></td></tr></table></div>

<p>As Brandon Savage states, the <em>-i</em> will ignore a nasty error that is caused by Ubuntu: <em>&quot;Ubuntu uses an unusual configuration for Apache which causes the installer not to know how to install PHP properly. This will produce a fatal error and cause the install to stop. The -i flag tells it to ignore the errors.&quot;</em></p>
<h3>7. Configure PHP 5.3</h3>
<p>After compiling PHP go to this directory&#8230;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>mods-available</pre></td></tr></table></div>

<p>&#8230; and create two files. The first file is called <em><strong>php5.load</strong></em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> php5.load</pre></td></tr></table></div>

<p>Write the following line into the file:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">LoadModule php5_module <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>modules<span style="color: #000000; font-weight: bold;">/</span>libphp5.so</pre></td></tr></table></div>

<p>Save and create the second file called <em><strong>php5.conf</strong></em></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> php5.conf</pre></td></tr></table></div>

<p>Write the following lines into this file:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">AddType application<span style="color: #000000; font-weight: bold;">/</span>x-httpd-php .php .phtml .php3
AddType application<span style="color: #000000; font-weight: bold;">/</span>x-httpd-php-source .phps</pre></td></tr></table></div>

<p>Almost finished. <strong>Load the configuration and restart Apache:</strong></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">a2enmod php5
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></td></tr></table></div>

<p><strong>That&#8217;s it!</strong> Now you can test if PHP is properly loaded by going to <em>/var/www</em> and creating an <em>index.php</em> file:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> index.php</pre></td></tr></table></div>

<p>Write the <em>phpinfo()</em> command into the file:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
    <span style="color: #990000;">phpinfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>Enjoy your new development environment. <strong>Oh, if this tutorial was useful to you don&#8217;t hesitate to comment and share it with others.</strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=FIArt7Of5U0:xboqwbpeOc0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=FIArt7Of5U0:xboqwbpeOc0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=FIArt7Of5U0:xboqwbpeOc0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=FIArt7Of5U0:xboqwbpeOc0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=FIArt7Of5U0:xboqwbpeOc0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=FIArt7Of5U0:xboqwbpeOc0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=FIArt7Of5U0:xboqwbpeOc0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=FIArt7Of5U0:xboqwbpeOc0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/FIArt7Of5U0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/php/creating-a-php-5-3-virtual-development-environment/feed</wfw:commentRss>
		<slash:comments>25</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/php/creating-a-php-5-3-virtual-development-environment</feedburner:origLink></item>
		<item>
		<title>An Introduction to MVC</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/ucTu3g8_eKs/an-introduction-to-mvc</link>
		<comments>http://www.serversidemagazine.com/ruby/an-introduction-to-mvc#comments</comments>
		<pubDate>Sun, 12 Jul 2009 09:38:59 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=348</guid>
		<description><![CDATA[MVC, or Model-View-Controller, is an architectural pattern used in software development. Although it&#8217;s been around for several decades, it has gained popularity recently as the crux of rapid development frameworks such as Ruby on Rails, CakePHP, Monorail, and JavaScriptMVC.
The aim of MVC is to promote good programming practices and code reuse by separating a web [...]]]></description>
			<content:encoded><![CDATA[<p><strong>MVC, or Model-View-Controller, is an architectural pattern used in software development.</strong> Although it&#8217;s been around for several decades, it has gained popularity recently as the crux of rapid development frameworks such as <a href="http://rubyonrails.org/" title="rubyonrails.org">Ruby on Rails</a>, <a href="http://cakephp.org/" title="cakephp.org">CakePHP</a>, <a href="http://www.castleproject.org/monorail/index.html" title="castleproject.org/monorail">Monorail</a>, and <a href="http://javascriptmvc.com/" title="javascriptmvc.com">JavaScriptMVC</a>.</p>
<p>The aim of MVC is to promote good programming practices and code reuse by separating a web application into three layers: data, presentation, and the interaction between the two. By separating these elements from each other, one can be easily updated without affecting the others.</p>
<p><span id="more-348"></span></p>
<p>Having a good understanding of MVC will be extremely helpful for anyone who is interested in learning a web framework like the ones mentioned above. <strong>Many frameworks are built around Ruby on Rails&#8217;s implementation of MVC, so understanding the core concepts well makes learning other similar MVC frameworks much easier.</strong></p>
<p>To understand MVC, we will look at each layer in some detail. Throughout this article, I will use the classic example of a blog to show how the concepts of MVC work in a real application. <strong>In short, the model represents the data. The view represents the user interface (the web page), and the controller facilitates communication between the two.</strong></p>
<p>The three layers of MVC in detail are:</p>
<h3>The model</h3>
<p><strnog>The model represents the data in the application.</strong> &#8220;Data&#8221; in this context means the nouns, or things, in the application that can be abstracted (generally using a database). For example, blogs store posts in a database. In an MVC application, this would imply a model called Post. Post would tell the application what type of data a post contains, which is usually a title, a date, and some body text.</p>
<p>In addition to defining the data that a &#8220;thing&#8221; would contain, it&#8217;s also the model&#8217;s job to interact with the database where the actual data for posts are stored, and to implement all logic relating to the creation, fetching, updating, and deleting, and other data manipulation of posts. The model is also built on top of an object-relational mapping (ORM), a system that connects the elements of the model object to the appropriate fields in the database. It will automatically handle all interaction with the database, allowing the developer to avoid writing SQL altogether.</p>
<p><strong>The code in the model is often referred to as business logic.</strong> Business logic is all the rules that define data and how to interact with it. By isolating the business logic from the presentation layer, it is easier to write and maintain the logic for the application in a way that is both reusable and transportable (perhaps to another framework) without conflicting with the way the user interacts with it on the web page.</p>
<p>A common example of business logic is validation rules. When a new blog post is made, the application developer may want to ensure that the post has been given a title. This would be enforced by the model, because it is a rule applying to the expected format of the data.</p>
<p>When the new post is submitted via web form, the model looks at the data it receives and checks if it conforms to any validation rules that apply. If there are any errors, such as an empty title field in this case, the model rejects the data, and sends an error back to the user. If the data passes validation, the model will open a connection to the database and save a new post record, using its ORM.</p>
<p>It is a common mistake for developers just beginning with MVC to think of models as simply a fancy name for a database. <strong>It&#8217;s important to remember that the model is not the database, it&#8217;s an abstraction of the data itself, and everything the application knows about what the data is and how it works is part of the model.</strong> It is considered good practice to put as much of the code as possible into the model. Try searching Google for fat model, skinny controller for additional details on this idea.</p>
<h3>The view</h3>
<p><strong>The view is the presentational layer of the application: the user interface.</strong> The view will look familiar to web developers who have done mostly procedural programming. For the most part, the view is simply the HTML page. Small bits of inline logic are included, such as simple loops to create tables or just printing dynamic data like in any other server-side script.</p>
<p>The goal in creating a good view is to have as little logic as possible – save the heavy lifting for the model and the controller. A view should be simple enough that someone who only works with markup and doesn&#8217;t program, like a designer, can work with it easily.</p>
<p>There will be a different view for each different page in an MVC application. In our blog example, the pages for viewing all blog posts, viewing a specific blog post, adding a new blog post, or editing an existing blog post will all be separate pages, and hence, separate views. <strong>Web frameworks that use MVC usually offer a method of dividing the view into even smaller sections to further modularize code.</strong></p>
<p>There are many elements of a single page that will be in common with other pages on a site. Consider the logo and branding, navigation, and footer text. These are usually the same on all pages. To keep from repeating all this code in every view, the view offers us a layout (in Rails parlance), an HTML template that contains all the markup in common to multiple pages. When a page loads, the framework will take the specific view for that page and insert it into the overall layout.</p>
<p>MVC frameworks typically offer other features in the view as well, such as helpers, classes that can be included in order to speed up common tasks such as encoding HTML entities or formatting times and dates. Another common feature is what is referred to in Rails as a partial.</p>
<p>A partial is to the view what the view is to the layout. It&#8217;s simply a very small chunk of reusable markup that can be inserted wherever it&#8217;s needed. A partial might be used in our blog example to contain the markup for an individual blog post. On the page that shows us one specific entry, this partial would be used just once, but on the index page, where all recent posts are shown, the partial would be called in a loop.</p>
<p>Partials are simply another way to organize the code into small chunks, following the programming practice called <a href="http://en.wikipedia.org/wiki/Don%27t_repeat_yourself" title="wikipedia.org/wiki/Don't_repeat_yourself">Don&#8217;t Repeat Yourself (DRY)</a>, which is one of the core philosophies of rapid development frameworks like Rails.</p>
<h3>The controller</h3>
<p><strong>Think of the controller as the translator between the view and the model. The controller receives requests from the view (the user), decides what to do, communicates with the model as necessary to send or retrieve data, and then prepares a response for the user to be delivered back to the view.</strong> If models are the nouns of your application, the controllers are the verbs.</p>
<p>The controller is made up of actions, methods that operate on a model. Our blog would have actions for creating, viewing, editing, and deleting blog posts. When a user follows a link in the application, the request is sent through what is called the dispatcher, which accesses the appropriate action in the appropriate controller.</p>
<p>If a user goes visits a link to a single blog entry, the dispatcher will call the blog controller&#8217;s show action. The controller will then ask the model for the data for the blog post that the user is requesting. When the controller receives this data from the model, it will set variables with that data and pass it on to the view.</p>
<p>Again, it is common for new MVC developers to put most of their code into the controller. After all, it is the controller that receives data and decides what to do with it. <strong>In best practice, the controller will not do any manipulation of data or user interface itself, it will merely translate between the view and the model.</strong> It will present the model with requests for data that it can understand, and it will provide the view with data that it knows how to format and present to the user.</p>
<h3>The big picture</h3>
<p>Now that we&#8217;ve seen the details of the M, the V, and the C, let&#8217;s try to get an understanding of the big picture by looking at how they all work together. The diagram below illustrates a standard request cycle in an MVC application.</p>
<p class="img-description">
	<a href="#"><br />
		<img src="http://www.serversidemagazine.com/images/an-introduction-to-mvc/mvc-request-cycle.gif" width="" height="" alt="A typical MVC request cycle" /><br />
	</a><br />
	<br />
	<span><strong>A typical MVC request cycle</strong></span>
</p>
<p>The process begins when a user takes an action on a web page – submitting a form that adds a new blog post, for example. The request is sent to the blog controller, which extracts the data submitted via the HTTP POST request and sends a message to the blog model to save a new post with this data.</p>
<p>The model checks the data against its validation rules. Assuming it passes validation, the model stores the data for this new post in the database and tells the controller it was successful. The controller then sets a variable for the view indicating success.</p>
<p>Finally, the view displays this message to the user back on the web page, and they know their new blog post has been successfully created. If, for some reason, validation of the data failed, the model would alert the controller of any errors, which would set a variable containing these errors for the view. The view would then present the original form along with the error messages for any fields that didn&#8217;t validate.</p>
<p>Though there is a lot to take in when first learning MVC, it&#8217;s really not as complicated as it sounds. <strong>Just remember that the model is the data, the view is the user interface, and the controller is the mediator.</strong> Even if not using a web framework that uses MVC design, the principles of separating presentation and business logic in an application are very helpful in creating clean, compact, reusable code that will be fun and easy to work with. Once the concepts of MVC are mastered, learning a new framework is a breeze.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=ucTu3g8_eKs:F8c7b_pT4ZI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=ucTu3g8_eKs:F8c7b_pT4ZI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=ucTu3g8_eKs:F8c7b_pT4ZI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=ucTu3g8_eKs:F8c7b_pT4ZI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=ucTu3g8_eKs:F8c7b_pT4ZI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=ucTu3g8_eKs:F8c7b_pT4ZI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=ucTu3g8_eKs:F8c7b_pT4ZI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=ucTu3g8_eKs:F8c7b_pT4ZI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/ucTu3g8_eKs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/ruby/an-introduction-to-mvc/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/ruby/an-introduction-to-mvc</feedburner:origLink></item>
		<item>
		<title>PHP 5.3</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/JbjJjnHIQXM/php-5-3</link>
		<comments>http://www.serversidemagazine.com/news/php-5-3#comments</comments>
		<pubDate>Thu, 25 Jun 2009 08:31:36 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=343</guid>
		<description><![CDATA[The PHP 5.3 stable release is imminent.
&#8220;PHP 5.3.0 is a newly developed version of PHP featuring long-awaited features like namespaces, late static binding, closures and much more.&#8221;
It is scheduled on June 30th
(via) Lukas Smith
]]></description>
			<content:encoded><![CDATA[<p><strong>The PHP 5.3 stable release is imminent.</strong></p>
<p><em>&#8220;PHP 5.3.0 is a newly developed version of PHP featuring long-awaited features like <a href="http://php.net/namespaces" title="php.net/namespaces">namespaces</a>, <a href="http://php.net/lsb" title="php.net/lsb">late static binding</a>, <a href="http://www.php.net/manual/en/functions.anonymous.php" title="php.net/manual/en/functions.anonymous.php">closures</a> and much more.&#8221;</em></p>
<p>It is scheduled on <a href="http://wiki.php.net/todo/php53" title="wiki.php.net/todo/php53">June 30th</a></p>
<p><em>(via) <a href="http://pooteeweet.org/blog/1503" title="pooteeweet.org/blog/1503">Lukas Smith</a></em></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=JbjJjnHIQXM:n_grVVxjVdI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=JbjJjnHIQXM:n_grVVxjVdI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=JbjJjnHIQXM:n_grVVxjVdI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=JbjJjnHIQXM:n_grVVxjVdI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=JbjJjnHIQXM:n_grVVxjVdI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=JbjJjnHIQXM:n_grVVxjVdI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=JbjJjnHIQXM:n_grVVxjVdI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=JbjJjnHIQXM:n_grVVxjVdI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/JbjJjnHIQXM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/news/php-5-3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/news/php-5-3</feedburner:origLink></item>
		<item>
		<title>Site Update</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/m9yI84_kFjc/site-update</link>
		<comments>http://www.serversidemagazine.com/news/site-update#comments</comments>
		<pubDate>Sun, 31 May 2009 17:11:48 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=338</guid>
		<description><![CDATA[Thank you everyone who read, contributed, and subscribed on Server-Side Magazine.
As you discovered, SSM is struggling a little bit, but I still have plans with it. 
I&#8217;m considering to re-brand the website, creating a new theme and writing more interesting articles.
So stay tuned!
]]></description>
			<content:encoded><![CDATA[<p>Thank you everyone who read, contributed, and subscribed on Server-Side Magazine.<br />
<strong>As you discovered, SSM is struggling a little bit, but I still have plans with it.</strong> </p>
<p>I&#8217;m considering to re-brand the website, creating a new theme and writing more interesting articles.</p>
<p>So stay tuned!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=m9yI84_kFjc:SuZWnwhuNJ8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=m9yI84_kFjc:SuZWnwhuNJ8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=m9yI84_kFjc:SuZWnwhuNJ8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=m9yI84_kFjc:SuZWnwhuNJ8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=m9yI84_kFjc:SuZWnwhuNJ8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=m9yI84_kFjc:SuZWnwhuNJ8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=m9yI84_kFjc:SuZWnwhuNJ8:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=m9yI84_kFjc:SuZWnwhuNJ8:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/m9yI84_kFjc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/news/site-update/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/news/site-update</feedburner:origLink></item>
		<item>
		<title>SQL Query Tester v0.1</title>
		<link>http://feedproxy.google.com/~r/server-side-magazine/~3/Zs7NxOunrEM/sql-query-tester-v01</link>
		<comments>http://www.serversidemagazine.com/news/sql-query-tester-v01#comments</comments>
		<pubDate>Sun, 31 May 2009 16:17:37 +0000</pubDate>
		<dc:creator>Gyorgy Fekete</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.serversidemagazine.com/?p=328</guid>
		<description><![CDATA[SSM presents another great tool called SQL Query Tester.
It is created for web developers who are working / testing SQL queries a lot. The nice thing about this tool is that it gets the query results via AJAX, so you don&#8217;t have to refresh the page, it has a SQL syntax highlighter and a basic [...]]]></description>
			<content:encoded><![CDATA[<p><strong>SSM presents another great tool called SQL Query Tester.</strong></p>
<p>It is created for web developers who are working / testing SQL queries a lot. The nice thing about this tool is that it gets the <strong>query results via AJAX</strong>, so you don&#8217;t have to refresh the page, it has a SQL <strong>syntax highlighter</strong> and a basic <strong>profiling tool</strong>.</p>
<p>It is written in PHP and jQuery, using <a href="http://adodb.sourceforge.net/" title="adodb.sourceforge.net">ADOdb</a> as a database abstraction layer and <a href="http://sourceforge.net/projects/codepress/" title="sourceforge.net/projects/codepress">CodePress</a> for the SQL editor.</p>
<p>It&#8217;s completely <strong>open source</strong>, you can find it at: <a href="http://code.google.com/p/sql-query-tester/" title="SQL Query Tester Google Code Page">code.google.com/p/sql-query-tester</a></p>
<p><strong>If you want to contribute or suggest features don&#8217;t hesitate to comment here or on the <a href="http://groups.google.com/group/sql-query-tester/" title="groups.google.com/group/sql-query-tester">project&#8217;s groups page</a>.</strong></p>
<p><strong>Screenshot:</strong></p>
<p><img src="http://www.serversidemagazine.com/sql-query-tester/screenshot2.gif" alt="SQL Query Tester Screenshot" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=Zs7NxOunrEM:5f6kO5G1N4U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=Zs7NxOunrEM:5f6kO5G1N4U:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=Zs7NxOunrEM:5f6kO5G1N4U:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=Zs7NxOunrEM:5f6kO5G1N4U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=Zs7NxOunrEM:5f6kO5G1N4U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=Zs7NxOunrEM:5f6kO5G1N4U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?i=Zs7NxOunrEM:5f6kO5G1N4U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/server-side-magazine?a=Zs7NxOunrEM:5f6kO5G1N4U:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/server-side-magazine?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/server-side-magazine/~4/Zs7NxOunrEM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.serversidemagazine.com/news/sql-query-tester-v01/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.serversidemagazine.com/news/sql-query-tester-v01</feedburner:origLink></item>
	</channel>
</rss>
