<?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:atom="http://www.w3.org/2005/Atom" xmlns:posterous="http://posterous.com/help/rss/1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Developly</title>
    <link>http://www.developly.com</link>
    <description>A technical blog about AWS, Symfony, Zend Framework, PHP, Dojo &amp; SaaS.</description>
    <generator>posterous.com</generator>
    <link xmlns="http://www.w3.org/2005/Atom" href="http://posterous.com/api/sup_update#48c376959" type="application/json" rel="http://api.friendfeed.com/2008/03#sup" />
    
    
    <feedburner:info uri="cd3engineers" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Developly" /><feedburner:info uri="developly" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://posterous.superfeedr.com/" /><item>
      <pubDate>Thu, 16 Jun 2011 21:05:00 -0700</pubDate>
      <title>Upgrading Symfony2</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/VGjnkglZJdI/upgrading-symfony2</link>
      <guid isPermaLink="false">http://www.developly.com/upgrading-symfony2</guid>
      <description>&lt;p&gt;
	&lt;p&gt;The first time we upgraded, we have to admit, it was a shit-show. Massive copy paste-over shit-show. Since then we&amp;rsquo;ve gotten a little more pragmatic. Here&amp;rsquo;s a quick recipe that should help you stay up to date with releases of Symfony2 or it&amp;rsquo;s bundles, like the &lt;a href="http://symfony.com/download"&gt;Standard Edition&lt;/a&gt; for example.&lt;/p&gt;

&lt;p&gt;From the root of your project, run the following commands:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;git remote add symfony https&lt;span class="other"&gt;:&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;github&lt;span class="other"&gt;.&lt;/span&gt;com&lt;span class="other"&gt;/&lt;/span&gt;symfony&lt;span class="other"&gt;/&lt;/span&gt;symfony&lt;span class="argument"&gt;-standard&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;git
git fetch symfony
git checkout v2&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;BETA5
git checkout &lt;span class="argument"&gt;-b&lt;/span&gt; symfony&lt;span class="argument"&gt;-upgrade&lt;/span&gt;&lt;span class="argument"&gt;-beta5&lt;/span&gt;
git checkout master
rm &lt;span class="argument"&gt;-rf&lt;/span&gt; vendors&lt;span class="other"&gt;/&lt;/span&gt;*
git submodules update
php bin&lt;span class="other"&gt;/&lt;/span&gt;vendors&lt;span class="other"&gt;.&lt;/span&gt;php
git merge symfony&lt;span class="argument"&gt;-upgrade&lt;/span&gt;&lt;span class="argument"&gt;-beta5&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;You might have to deal with conflicts as a regular part of the merge but it&amp;rsquo;s that&amp;rsquo;s easy enough if you follow &lt;a href="http://gitref.org/branching/#merge"&gt;this guide&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you clear your console and lose the list of files you need to manually merge, you can run this command to re-summon them:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;git diff &lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="argument"&gt;-name&lt;/span&gt;&lt;span class="argument"&gt;-only&lt;/span&gt; &lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="argument"&gt;-diff&lt;/span&gt;&lt;span class="argument"&gt;-filter=M&lt;/span&gt; &lt;span class="argument"&gt;-S&lt;/span&gt;&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/upgrading-symfony2"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/upgrading-symfony2#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=mG38quQCMs8:u7u1dWUHEeY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=mG38quQCMs8:u7u1dWUHEeY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=mG38quQCMs8:u7u1dWUHEeY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=mG38quQCMs8:u7u1dWUHEeY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=mG38quQCMs8:u7u1dWUHEeY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=mG38quQCMs8:u7u1dWUHEeY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/mG38quQCMs8" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/VGjnkglZJdI" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/upgrading-symfony2</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/mG38quQCMs8/upgrading-symfony2</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 14 Jun 2011 08:40:00 -0700</pubDate>
      <title>Simple Symfony 2 Virtual Hosts</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/onjI8IqaA4c/simple-symfony-2-virtual-hosts</link>
      <guid isPermaLink="false">http://www.developly.com/simple-symfony-2-virtual-hosts</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Like many I&amp;rsquo;ve looked for a lightning quick virtual host pre-tested for Symfony2 only to find snarky comments saying &amp;ldquo;Just use a virtual host&amp;rdquo;.
Yeah, thanks! I&amp;rsquo;ve prepared two virtual hosts locally that allow you to run both development and production environments on Windows &amp;ndash; this should work for Linux too, just adapt your paths.&lt;/p&gt;

&lt;h2&gt;Add virtual hosts to httpd.conf&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;NameVirtualHost *:80
&amp;lt;VirtualHost *:80&amp;gt;
    ServerName  myapp.lprod
    DocumentRoot &amp;quot;C:\Zend\Apache2\htdocs\myapp\web&amp;quot;
    ErrorLog &amp;quot;C:\Zend\Apache2\htdocs\myapp\app\logs\perror.log&amp;quot;
    CustomLog &amp;quot;C:\Zend\Apache2\htdocs\myapp\app\logs\paccess.log&amp;quot; common
    &amp;lt;Directory &amp;quot;C:\Zend\Apache2\htdocs\myapp\web&amp;quot;&amp;gt;
        AllowOverride   All
    &amp;lt;/Directory&amp;gt;
&amp;lt;/VirtualHost&amp;gt;
&amp;lt;VirtualHost *:80&amp;gt;
    ServerName  myapp.ldev
    DocumentRoot &amp;quot;C:\Zend\Apache2\htdocs\myapp\web&amp;quot;
    ErrorLog &amp;quot;C:\Zend\Apache2\htdocs\myapp\app\logs\derror.log&amp;quot;
    CustomLog &amp;quot;C:\Zend\Apache2\htdocs\myapp\app\logs\daccess.log&amp;quot; common
    &amp;lt;Location /&amp;gt;
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ /app_dev.php [QSA,L]
    &amp;lt;/Location&amp;gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;Add hosts entries&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;127.0.0.1 myapp.lprod 
127.0.0.1 myapp.ldev&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;After restarting Apache HTTP and possibly your browser, you should be able to travel to both &lt;code&gt;http://myapp.ldev/&lt;/code&gt; and &lt;code&gt;http://myapp.lprod&lt;/code&gt; to get to your application.&lt;/p&gt;

&lt;h2&gt;Clear production cache by hand&lt;/h2&gt;

&lt;p&gt;If you get an error when going to prod you most likely need to clean cache &amp;ndash; remember that this is not automatic for the prod environment. That
means this command needs to be ran every-time you make changes that are otherwise cached. Run this command from your project root.&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;php app&lt;span class="other"&gt;/&lt;/span&gt;console cache&lt;span class="other"&gt;:&lt;/span&gt;clear &lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="argument"&gt;-env=prod&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;I hoped this helps out beginner Symfony2 developers or those who want a quick recipe without messing around.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/simple-symfony-2-virtual-hosts"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/simple-symfony-2-virtual-hosts#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8H2-mU3Af1A:KtO0su65tzg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8H2-mU3Af1A:KtO0su65tzg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8H2-mU3Af1A:KtO0su65tzg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=8H2-mU3Af1A:KtO0su65tzg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8H2-mU3Af1A:KtO0su65tzg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=8H2-mU3Af1A:KtO0su65tzg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/8H2-mU3Af1A" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/onjI8IqaA4c" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/simple-symfony-2-virtual-hosts</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/8H2-mU3Af1A/simple-symfony-2-virtual-hosts</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 13 Jun 2011 15:15:00 -0700</pubDate>
      <title>Zend_Session_SaveHandler_DbTable in application.ini</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/2eWt5cvoOe8/setting-zendsessionsavehandlerdbtable-in-appl</link>
      <guid isPermaLink="false">http://www.developly.com/setting-zendsessionsavehandlerdbtable-in-appl</guid>
      <description>&lt;p&gt;
	&lt;p&gt;A common task when thinking about scaling applications horizontally is storing session pointers in shared memory.
This is because session data is typically stored on a box&amp;rsquo;s local disk &amp;ndash; so if you have multiple servers under a load balancer, you could
be rotated to a box that doesn&amp;rsquo;t know about your session. This is a problem.&lt;/p&gt;

&lt;p&gt;You might use sticky sessions at the load balancer level to keep users on the box where their sessions were written, but
this could have a negative impact on your overall throughput. You could store them in an in-memory layer, like &lt;code&gt;memcached&lt;/code&gt;, but
you should consider that layers like this should be safely &amp;ldquo;wipe able&amp;rdquo; without breaking your application entirely.
If you need to ensure that session data is available to many box&amp;rsquo;s and isn&amp;rsquo;t going to become corrupt or disappear, then perhaps
storing them in database is your best option.&lt;/p&gt;

&lt;p&gt;For some reason setting up session saving to DB wasn&amp;rsquo;t readily achievable online via &lt;code&gt;application.ini&lt;/code&gt;. The docs weren&amp;rsquo;t too helpful either. I hope this helps
developers setup session saving with &lt;code&gt;Zend_Session_SaveHandler_DbTable&lt;/code&gt; in a jiffy.&lt;/p&gt;

&lt;h2&gt;Create the session table&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="r"&gt;CREATE&lt;/span&gt; &lt;span class="r"&gt;TABLE&lt;/span&gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;session&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; (
    &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;session_id&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class="pt"&gt;char&lt;/span&gt;(&lt;span class="i"&gt;32&lt;/span&gt;) &lt;span class="r"&gt;NOT&lt;/span&gt; &lt;span class="pc"&gt;NULL&lt;/span&gt;,
    &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;save_path&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class="pt"&gt;varchar&lt;/span&gt;(&lt;span class="i"&gt;100&lt;/span&gt;) &lt;span class="r"&gt;NOT&lt;/span&gt; &lt;span class="pc"&gt;NULL&lt;/span&gt;,
    &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class="pt"&gt;varchar&lt;/span&gt;(&lt;span class="i"&gt;32&lt;/span&gt;) &lt;span class="r"&gt;NOT&lt;/span&gt; &lt;span class="pc"&gt;NULL&lt;/span&gt; &lt;span class="di"&gt;DEFAULT&lt;/span&gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;,
    &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;modified&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class="pt"&gt;int&lt;/span&gt;,
    &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;lifetime&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class="pt"&gt;int&lt;/span&gt;,
    &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;session_data&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class="pt"&gt;text&lt;/span&gt;,
    &lt;span class="r"&gt;PRIMARY&lt;/span&gt; &lt;span class="r"&gt;KEY&lt;/span&gt; (&lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;Session_ID&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;save_path&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;, &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;name&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;)
);&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;Configure the session handler&lt;/h2&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;;place after resources.db section
resources.session.save_path = APPLICATION_PATH &amp;quot;/../data/sessions&amp;quot;
resources.session.use_only_cookies = true
resources.session.remember_me_seconds = 864000
resources.session.saveHandler.class = &amp;quot;Zend_Session_SaveHandler_DbTable&amp;quot;
resources.session.saveHandler.options.name = &amp;quot;session&amp;quot;
resources.session.saveHandler.options.primary[] = &amp;quot;session_id&amp;quot;
resources.session.saveHandler.options.primary[] = &amp;quot;save_path&amp;quot;
resources.session.saveHandler.options.primary[] = &amp;quot;name&amp;quot;
resources.session.saveHandler.options.primaryAssignment[] = &amp;quot;sessionId&amp;quot;
resources.session.saveHandler.options.primaryAssignment[] = &amp;quot;sessionSavePath&amp;quot;
resources.session.saveHandler.options.primaryAssignment[] = &amp;quot;sessionName&amp;quot;
resources.session.saveHandler.options.modifiedColumn = &amp;quot;modified&amp;quot;
resources.session.saveHandler.options.dataColumn = &amp;quot;session_data&amp;quot;
resources.session.saveHandler.options.lifetimeColumn = &amp;quot;lifetime&amp;quot;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;Start the session&lt;/h2&gt;

&lt;p&gt;This is optional depending on your application, read more about it in the
&lt;a href="http://zendframework.com/manual/en/zend.session.advanced_usage.html#zend.session.advanced_usage.starting_a_session"&gt;Zend_Session&lt;/a&gt;
section of the docs.&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="r"&gt;class&lt;/span&gt; &lt;span class="cl"&gt;Bootstrap&lt;/span&gt; &lt;span class="r"&gt;extends&lt;/span&gt; &lt;span class="co"&gt;Zend_Application_Bootstrap_Bootstrap&lt;/span&gt;
{
    &lt;span class="r"&gt;public&lt;/span&gt; _initSessionStart()
    {
        &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;bootstrap(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;db&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);
        &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;bootstrap(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;session&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);
        &lt;span class="co"&gt;Zend_Session&lt;/span&gt;::start();
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/setting-zendsessionsavehandlerdbtable-in-appl"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/setting-zendsessionsavehandlerdbtable-in-appl#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=BJl-RJwX42g:mkLH3jRlDbY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=BJl-RJwX42g:mkLH3jRlDbY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=BJl-RJwX42g:mkLH3jRlDbY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=BJl-RJwX42g:mkLH3jRlDbY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=BJl-RJwX42g:mkLH3jRlDbY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=BJl-RJwX42g:mkLH3jRlDbY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/BJl-RJwX42g" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/2eWt5cvoOe8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/setting-zendsessionsavehandlerdbtable-in-appl</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/BJl-RJwX42g/setting-zendsessionsavehandlerdbtable-in-appl</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 09 Jun 2011 14:58:00 -0700</pubDate>
      <title>Purging Zend Server's Job Queue.</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/-vPE7pw1hM4/purging-zend-servers-job-queue</link>
      <guid isPermaLink="false">http://www.developly.com/purging-zend-servers-job-queue</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Zend Server is great. It kicks WAMP &amp;amp; MAMP&amp;rsquo;s butt. My favorite feature is the job queue &amp;ndash; it offers an object oriented, cross-platform, cron-like paradigm. It&amp;rsquo;s really handy.&lt;/p&gt;

&lt;p&gt;When developing with it it&amp;rsquo;s not uncommon to have many jobs fail (from expirementing), jobs that spawn jobs, or jobs that are dependent on other jobs. When this happens, your jobqueue logs get ginormous. This isn&amp;rsquo;t typically a problem but the Zend Server admin interface does not allow you to select more than one page of jobs at a time. When you have 20,000 jobs, this means you&amp;rsquo;ll be clicking &lt;em&gt;select all&lt;/em&gt; then &lt;em&gt;delete&lt;/em&gt; about 1000 times. This isn&amp;rsquo;t reasonable. Here is the best and easiest way to delete Zend Server job queue records.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Stop the &lt;code&gt;Zend Job Queue&lt;/code&gt; service.&lt;/li&gt;
&lt;li&gt;Delete the JobQueue database @ &lt;code&gt;ZendServer/data/db/jobqueue.db&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Start the &lt;code&gt;Zend Job Queue&lt;/code&gt; service.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;Hopefully this helps other developers in the same position. And Zend, make a &lt;em&gt;real&lt;/em&gt; select all button in the ZendServer admin panel.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/purging-zend-servers-job-queue"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/purging-zend-servers-job-queue#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8zK8qge06PE:U2W6caS6WCI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8zK8qge06PE:U2W6caS6WCI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8zK8qge06PE:U2W6caS6WCI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=8zK8qge06PE:U2W6caS6WCI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=8zK8qge06PE:U2W6caS6WCI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=8zK8qge06PE:U2W6caS6WCI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/8zK8qge06PE" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/-vPE7pw1hM4" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/purging-zend-servers-job-queue</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/8zK8qge06PE/purging-zend-servers-job-queue</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 03 Jun 2011 15:18:00 -0700</pubDate>
      <title>Using Symfony2 on PhpFog now. </title>
      <link>http://feedproxy.google.com/~r/Developly/~3/yXizBdnQohY/using-symfony2-on-phpfog-now-right-now</link>
      <guid isPermaLink="false">http://www.developly.com/using-symfony2-on-phpfog-now-right-now</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;img title="PhpFog &amp;amp; Symfony sitting in a tree." src="http://farm3.static.flickr.com/2327/5794955536_b1a7cf90b9.jpg" alt="PhpFog &amp;amp; Symfony" /&gt;&lt;/p&gt;

&lt;p&gt;PhpFog is a new PHP PaaS service. It&amp;rsquo;s dazzling. It takes the weight of deploying applications to the cloud off your shoulders and allows you to focus on writing code. You can deploy your app&amp;rsquo;s with a simple &lt;code&gt;git push phpfog master&lt;/code&gt;. This is great, but PhpFog is new and there is no built-in considerations for Symfony2. That makes sense &amp;ndash; Symfony2 is still (at the time of writing) in beta. But I want to deploy Symfony2 apps now!&lt;/p&gt;

&lt;p&gt;In this article I&amp;rsquo;ll show you how you can use PhpFog to host a Symfony2 application. For the purpose of ease we are going to use Github but you could just as easily host your code with Beanstalk, or use PhpFog&amp;rsquo;s Git repository alone.&lt;/p&gt;

&lt;h2&gt;Step 1, setup a Symfony2 app in Git.&lt;/h2&gt;

&lt;p&gt;If you already have your application in Git and have at least one production route, then you can skip to the next step.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the &lt;a href="http://symfony.com/download"&gt;Symfony2 Standard Edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add a new bundle called &lt;code&gt;CompanyExampleBundle&lt;/code&gt; where company is the name of your company, group, or project. Don&amp;rsquo;t forget to add &lt;code&gt;Company&lt;/code&gt; to the auto-loader in &lt;code&gt;app/autoload.php&lt;/code&gt;, and register the bundle in &lt;code&gt;app/AppKernel.php&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Create a new controller at &lt;code&gt;src/Company/Controller/HelloWorldController.php&lt;/code&gt; which renders a view &lt;code&gt;CompanyExample:HelloWorld:index.html.twig&lt;/code&gt;. In the view, put in a nice little &lt;code&gt;Hello world!&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In &lt;code&gt;app/routing_dev.yml&lt;/code&gt; change the &lt;code&gt;_welcome&lt;/code&gt; route&amp;rsquo;s pattern to &lt;code&gt;/welcome&lt;/code&gt;. Now go to &lt;code&gt;app/routing.yml&lt;/code&gt; and add a route like so:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="ke"&gt;_hellowworld&lt;/span&gt;:
      &lt;span class="ke"&gt;pattern&lt;/span&gt;: &lt;span class="s"&gt;/&lt;/span&gt;
      &lt;span class="ke"&gt;defaults&lt;/span&gt;: &lt;span class="s"&gt;{ _controller: CompanyExampleBundle:HelloWorld:index }&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;At this point, verify that you can get to the new controller by traveling to &lt;code&gt;http://localhost/yourproject/web/app_dev.php/&lt;/code&gt; in your browser. If you see a &lt;code&gt;Hello world!&lt;/code&gt;, then you&amp;rsquo;re gravy. Now substitute &lt;em&gt;app_dev.php&lt;/em&gt; for just &lt;em&gt;app.php&lt;/em&gt; to access the production front controller and make sure you see the same thing. If you get a 400 or things appear to be as they were before, you might need to blow production cache. This can be done from the command line like so:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="fu"&gt;cd&lt;/span&gt; &lt;span class="other"&gt;/&lt;/span&gt;to&lt;span class="other"&gt;/&lt;/span&gt;yourproject
 php app&lt;span class="other"&gt;/&lt;/span&gt;console &lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="argument"&gt;-env=prod&lt;/span&gt; cache&lt;span class="other"&gt;:&lt;/span&gt;clear&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You&amp;rsquo;ve setup a new Symfony2 app and are ready to get going! Commit and push your application to Github then continue on to the next step.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Step 2, Create your app on PhpFog.&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Login to &lt;a href="https://phpfog.com/account"&gt;PhpFog&lt;/a&gt; and select &lt;em&gt;Create a New App&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;On Step 1 of the application wizard choose &amp;ldquo;Custom App&amp;rdquo; from the bottom left.&lt;/li&gt;
&lt;li&gt;On Step 2 it&amp;rsquo;s important to note that if you want to use &lt;a href="http://www.slideshare.net/kriswallsmith/introducing-assetic-asset-management-for-php-53"&gt;Assetic&lt;/a&gt;, then you need a paying box &amp;ndash; this is because the shared tier does not support &lt;a href="http://help.phpfog.com/discussions/problems/729-open_basedir-restriction"&gt;open_basedir&lt;/a&gt;. If you aren&amp;rsquo;t going to use Assetic, go ahead and choose the free shared tier.&lt;/li&gt;
&lt;li&gt;On the final step choose a URL. If you decide to use a custom URL you will have to alter DNS settings, so for a quicker finish we&amp;rsquo;d suggest a phpfog url. Once you&amp;rsquo;ve done this hit the &amp;ldquo;Create Application&amp;rdquo; button and you&amp;rsquo;re done! Once the application has been provisioned you will receive an email and can continue onto the next step.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;Step 3, Pushing your Symfony2 application to PhpFog&lt;/h2&gt;

&lt;p&gt;Pushing your app to PhpFog is really easy. It&amp;rsquo;s perhaps my favorite thing to do.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add the public key from the machine you are working on &lt;code&gt;~/.ssh/id_rsa.pub&lt;/code&gt; to the accepted SSH keys in your &lt;a href="https://phpfog.com/account#/ssh_keys"&gt;Account Settings&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Now ho to the &lt;em&gt;Source Code&lt;/em&gt; tab from your apps PhpFog admin panel and copy the git repository location.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, from the console, add phpfog as a remote and push. Like so:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;git remote add phpfog git&lt;span class="other"&gt;@&lt;/span&gt;git01&lt;span class="other"&gt;.&lt;/span&gt;phpfog&lt;span class="other"&gt;.&lt;/span&gt;com&lt;span class="other"&gt;:&lt;/span&gt;myproject&lt;span class="other"&gt;.&lt;/span&gt;phpfogapp&lt;span class="other"&gt;.&lt;/span&gt;com
 git push phpfog master &lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="argument"&gt;-force&lt;/span&gt;
 &lt;span class="c"&gt;# should say something like 'deploying to the cloud' on success&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now test that your code made it up by accessing the &lt;code&gt;robots.txt&lt;/code&gt; file that comes with Symfony2 by default. Should be at a url like so: &lt;code&gt;http://company.phpfogapp.com/web/robots.txt&lt;/code&gt;. If this resolves, you&amp;rsquo;ve successfully deployed your code to the cloud!&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;You&amp;rsquo;re not done yet, however, you still need to tweak you PhpFog app to Symfony2&amp;rsquo;s liking.&lt;/p&gt;

&lt;h2&gt;Step 4, Configure your PhpFog app for Symfony2&lt;/h2&gt;

&lt;p&gt;You&amp;rsquo;re almost there. There&amp;rsquo;s just a couple things left&amp;hellip;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Symfony2 caches all your configuration files to the &lt;code&gt;app&lt;/code&gt; directory, and therefor needs write access. Go to the &amp;ldquo;Permissions&amp;rdquo; tab of your app&amp;rsquo;s admin panel and add the pathname &lt;code&gt;app&lt;/code&gt; and save changes.&lt;/li&gt;
&lt;li&gt;Go to the &amp;ldquo;Settings&amp;rdquo; tab and change the &lt;em&gt;Base Directory&lt;/em&gt; to &lt;code&gt;web&lt;/code&gt;. This will tidy up your url, you won&amp;rsquo;t have to type in /web before accessing resources.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Finally, you need a way to clear production cache, while in production. PhpFog doesn&amp;rsquo;t give console access so the simplest way to accomplish this is by creating a php script called &lt;code&gt;web/clean_prod_cache.php&lt;/code&gt; with the code like so:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;php ../app/console  env=prod cache:clear&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;;
 &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="s"&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;span class="k"&gt;php ../app/console  env=prod cache:warm&lt;/span&gt;&lt;span class="dl"&gt;`&lt;/span&gt;&lt;/span&gt;;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt; Now when you go to &lt;code&gt;http://company.phpfogapp.com/clean_prod_cache.php&lt;/code&gt; the cache will be wiped and warmed. All ready to go.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;I hope that this guide helps both developers looking to use Symfony2 on PhpFog early as well as the PhpFog team in implementing Symfony2 support.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/using-symfony2-on-phpfog-now-right-now"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/using-symfony2-on-phpfog-now-right-now#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=IOdErf-YFJ4:9eP80sepTYw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=IOdErf-YFJ4:9eP80sepTYw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=IOdErf-YFJ4:9eP80sepTYw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=IOdErf-YFJ4:9eP80sepTYw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=IOdErf-YFJ4:9eP80sepTYw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=IOdErf-YFJ4:9eP80sepTYw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/IOdErf-YFJ4" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/yXizBdnQohY" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/using-symfony2-on-phpfog-now-right-now</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/IOdErf-YFJ4/using-symfony2-on-phpfog-now-right-now</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 01 Jun 2011 13:21:00 -0700</pubDate>
      <title>PhpStorm equivilant of Eclipse's Open Resource Dialog.</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/GDTG0jFvZiI/phpstorm-equivilant-of-eclipses-open-resource</link>
      <guid isPermaLink="false">http://www.developly.com/phpstorm-equivilant-of-eclipses-open-resource</guid>
      <description>&lt;p&gt;
	&lt;p&gt;My favorite by far feature of Eclipse is the ability to press &lt;strong&gt;CTRL + SHIFT + R&lt;/strong&gt;&lt;em style="font-weight: bold;"&gt;&amp;nbsp;&lt;/em&gt;to enable the "Open Resource" dialog, which allowed you to auto-search your projects file tree for a file. On PhpStorm the equivilant is &lt;strong&gt;CTRL + SHIFT + N&lt;/strong&gt;. Good luck with your PhpStorming.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/phpstorm-equivilant-of-eclipses-open-resource"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/phpstorm-equivilant-of-eclipses-open-resource#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=a_Xv-sMtDEE:lL6DykrefTc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=a_Xv-sMtDEE:lL6DykrefTc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=a_Xv-sMtDEE:lL6DykrefTc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=a_Xv-sMtDEE:lL6DykrefTc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=a_Xv-sMtDEE:lL6DykrefTc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=a_Xv-sMtDEE:lL6DykrefTc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/a_Xv-sMtDEE" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/GDTG0jFvZiI" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/phpstorm-equivilant-of-eclipses-open-resource</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/a_Xv-sMtDEE/phpstorm-equivilant-of-eclipses-open-resource</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 29 Mar 2011 14:30:00 -0700</pubDate>
      <title>Fixing Packages Excluded Yum Error with Zend Server Repo</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/DHw8cdAehSk/fixing-packages-excluded-yum-error-with-zend</link>
      <guid isPermaLink="false">http://www.developly.com/fixing-packages-excluded-yum-error-with-zend</guid>
      <description>&lt;p&gt;
	&lt;p&gt;If you&amp;rsquo;ve ever installed Zend Server on a server with &lt;code&gt;yum-plugin-priorities&lt;/code&gt; installed, then you know that it&amp;rsquo;s difficult to &lt;code&gt;yum list available *php*&lt;/code&gt;. You end up getting an error like &lt;code&gt;100 packages excluded due to repository priority protections&lt;/code&gt;. The reason for this is that &lt;code&gt;zend.conf&lt;/code&gt;, which Zend &lt;a href="http://files.zend.com/help/Zend-Server/rpm_installation.htm" title="Zend Server RPM Installation"&gt;instructs you to use&lt;/a&gt;,   doesn&amp;rsquo;t come with priorities specified by default. Simply update the conf file to include a priority to fix the issue. We added &lt;code&gt;priority=1&lt;/code&gt; and &lt;code&gt;failovermethod=priority&lt;/code&gt; to ours:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="other"&gt;[&lt;/span&gt;Zend&lt;span class="other"&gt;]&lt;/span&gt;
name&lt;span class="other"&gt;=&lt;/span&gt;Zend Server
baseurl&lt;span class="other"&gt;=&lt;/span&gt;http&lt;span class="other"&gt;:&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;repos&lt;span class="other"&gt;.&lt;/span&gt;zend&lt;span class="other"&gt;.&lt;/span&gt;com&lt;span class="other"&gt;/&lt;/span&gt;zend&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;rpm&lt;span class="other"&gt;/&lt;/span&gt;&lt;span class="iv"&gt;$basearch&lt;/span&gt;
enabled&lt;span class="other"&gt;=&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;
gpgcheck&lt;span class="other"&gt;=&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;
priority&lt;span class="other"&gt;=&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;
failovermethod&lt;span class="other"&gt;=&lt;/span&gt;priority

&lt;span class="other"&gt;[&lt;/span&gt;Zend_noarch&lt;span class="other"&gt;]&lt;/span&gt;
name&lt;span class="other"&gt;=&lt;/span&gt;Zend Server &lt;span class="other"&gt;-&lt;/span&gt; noarch
baseurl&lt;span class="other"&gt;=&lt;/span&gt;http&lt;span class="other"&gt;:&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;repos&lt;span class="other"&gt;.&lt;/span&gt;zend&lt;span class="other"&gt;.&lt;/span&gt;com&lt;span class="other"&gt;/&lt;/span&gt;zend&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;/&lt;/span&gt;rpm&lt;span class="other"&gt;/&lt;/span&gt;noarch
enabled&lt;span class="other"&gt;=&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;
gpgcheck&lt;span class="other"&gt;=&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;
priority&lt;span class="other"&gt;=&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;
failovermethod&lt;span class="other"&gt;=&lt;/span&gt;priority&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;Now when we ran a &lt;code&gt;yum list available *php*&lt;/code&gt; we got the expected response:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="other"&gt;[&lt;/span&gt;root&lt;span class="other"&gt;@&lt;/span&gt;ip&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt; httpd&lt;span class="other"&gt;]&lt;/span&gt; yum list available *php*

Loaded plugins&lt;span class="other"&gt;:&lt;/span&gt; fastestmirror&lt;span class="other"&gt;,&lt;/span&gt; priorities&lt;span class="other"&gt;,&lt;/span&gt; security
Loading mirror speeds from cached hostfile
Available Packages
cups&lt;span class="argument"&gt;-php&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                                 &lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;:&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;4&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;35&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;7&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;amzn1   amzn&lt;span class="argument"&gt;-main&lt;/span&gt;
graphviz&lt;span class="argument"&gt;-php&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                             &lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;26&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;4&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;12&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;amzn1    amzn&lt;span class="argument"&gt;-main&lt;/span&gt;
libinformix&lt;span class="argument"&gt;-php&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64          &lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;90&lt;/span&gt;                 Zend
libinformix&lt;span class="argument"&gt;-php&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;3&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64          &lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;90&lt;/span&gt;                 Zend
mod&lt;span class="argument"&gt;-php&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-apache2&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64          &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;27&lt;/span&gt;            Zend
php&lt;span class="other"&gt;.&lt;/span&gt;x86_64                                      &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;3&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;12&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;amzn1     amzn&lt;span class="argument"&gt;-main&lt;/span&gt;
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-apc&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                  &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;14&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-bcmath&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64               &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;8&lt;/span&gt;             Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-bz2&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                  &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;8&lt;/span&gt;             Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-calendar&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64             &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;8&lt;/span&gt;             Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-cm&lt;/span&gt;&lt;span class="argument"&gt;-utils&lt;/span&gt;&lt;span class="argument"&gt;-pe&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64          &lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;14&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;18&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-cm&lt;/span&gt;&lt;span class="argument"&gt;-utils&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64             &lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;14&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;18&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-code&lt;/span&gt;&lt;span class="argument"&gt;-tracing&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64         &lt;span class="number"&gt;4&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;55&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;31&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-common&lt;/span&gt;&lt;span class="argument"&gt;-extensions&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;noarch    &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;4&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;25&lt;/span&gt;             Zend_noarch
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-common&lt;/span&gt;&lt;span class="argument"&gt;-extensions&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="argument"&gt;-ce&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;noarch &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;4&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;25&lt;/span&gt;             Zend_noarch
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-ctype&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;8&lt;/span&gt;             Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-curl&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                 &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;15&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-data&lt;/span&gt;&lt;span class="argument"&gt;-cache&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64           &lt;span class="number"&gt;4&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="other"&gt;0&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;59&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;11&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-debugger&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64             &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;3&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;23&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;12&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-dev&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                  &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;20&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-download&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64      &lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;48&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;            Zend
php&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="argument"&gt;-exif&lt;/span&gt;&lt;span class="argument"&gt;-zend&lt;/span&gt;&lt;span class="argument"&gt;-server&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;x86_64                 &lt;span class="number"&gt;5&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="other"&gt;.&lt;/span&gt;&lt;span class="number"&gt;17&lt;/span&gt;&lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="number"&gt;9&lt;/span&gt;             Zend
&lt;span class="c"&gt;#truncated list for this example&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;This helped us when installing Zend Server on Amazon Linux AMI, now that they have moved to priorities.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/fixing-packages-excluded-yum-error-with-zend"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/fixing-packages-excluded-yum-error-with-zend#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=nvl9rZqpaGE:6Sf_-NJF_Eo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=nvl9rZqpaGE:6Sf_-NJF_Eo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=nvl9rZqpaGE:6Sf_-NJF_Eo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=nvl9rZqpaGE:6Sf_-NJF_Eo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=nvl9rZqpaGE:6Sf_-NJF_Eo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=nvl9rZqpaGE:6Sf_-NJF_Eo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/nvl9rZqpaGE" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/DHw8cdAehSk" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/fixing-packages-excluded-yum-error-with-zend</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/nvl9rZqpaGE/fixing-packages-excluded-yum-error-with-zend</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 22 Mar 2011 09:45:00 -0700</pubDate>
      <title>3 Step Layouts in Zend Framework</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/Fa6AQf-YmP8/creating-3-step-layouts-with-zendlayout</link>
      <guid isPermaLink="false">http://www.developly.com/creating-3-step-layouts-with-zendlayout</guid>
      <description>&lt;p&gt;
	&lt;p&gt;  Zend Framework provides the components &lt;code&gt;Zend_View&lt;/code&gt; and &lt;code&gt;Zend_Layout&lt;/code&gt; to facilitate developing the view layer of your application.
  These components are light, powerful, and nifty &amp;ndash; making it easy to alter behavior slightly to achieve different rendering  strategies.
  The primary strategy &lt;a href="http://framework.zend.com/manual/en/learning.layout.usage.html" title="Using Zend_Layout"&gt;outlined by the framework&lt;/a&gt;
  is the &lt;a href="http://martinfowler.com/eaaCatalog/twoStepView.html"&gt;Two Step View pattern&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;  While the Two Step View pattern creates a reasonable paradigm for seperating layout presentation from page presentation, enabling
  Three-level Inheritance allows for even better separation. In other words, using 3 Step Layouts is a possible and often necessary
  investment to make when implementing front-ends in Zend Framework projects; they allow fine grain re-usability that provides
  for a DRYer presentation layer.&lt;/p&gt;

&lt;p&gt;  &lt;img title="3 Step View pattern" src="http://farm6.static.flickr.com/5185/5549407190_e3b13d282b.jpg" alt="3 Step View pattern" /&gt;&lt;/p&gt;

&lt;h2&gt;Setting up 3 Step Layouts&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Nothing extra is needed to implement this pattern, just Zend Framework.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Step 1 &amp;ndash; The Wrapper&lt;/h3&gt;

&lt;p&gt;  The first step is to create a wrapper. A wrapper is just a view, there&amp;rsquo;s nothing special about it.
  Register your wrapper with Zend Framework by popping into &lt;code&gt;application.ini&lt;/code&gt; and telling the Layout Resource that the wrapper
  is the default layout, also specifying where to find it:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;; application/configs/application.ini

resources.layout.layoutPath = APPLICATION_PATH &amp;quot;/views/layouts&amp;quot; 
resources.layout.layout = wrapper&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  As a general rule of thumb all view behavior that needs to happen on every request, regardless of which controller or module is being accessed, belongs in the wrapper.
  Another way of saying it is that the wrapper is the bootstrap for the presentation layer. Here&amp;rsquo;s an example wrapper that can be used as a starting point.
  It&amp;rsquo;s a pretty good assumption that every application you create will at least start with a structure like so:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* application/views/layouts/wrapper.phtml */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 

&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;doctype().&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="ch"&gt;\n&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;html&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;head&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headTitle(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headMeta(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headLink(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headStyle(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;body&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* NESTED LAYOUT SUPPORT */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;if&lt;/span&gt;(&lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;nestedLayout): &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;  
            &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;setLayout(&lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;nestedLayout); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;else&lt;/span&gt;: &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
            &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;setLayout(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;default&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;endif&lt;/span&gt;;&lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;render();  &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 

        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* OUTPUT JAVASCRIPT */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headScript(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;inlineScript(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  From here you should extend your wrapper to add global layout configuration for your app. By extending, I simply mean adding
  code directly to the wrapper in order to provide more functionality. Here are a few things that you might be done in your wrapper:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting the doctype and charset&lt;/li&gt;
&lt;li&gt;Setting a base site title that will be appended to downstream&lt;/li&gt;
&lt;li&gt;Linking in CSS libraries like reset, grid system, font-stacks, etc&amp;hellip;&lt;/li&gt;
&lt;li&gt;Attaching JavaScript libraries like JQuery, Dojo, YUI, etc&amp;hellip;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inserting site tracking urchins&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note that you should only ever need 1 wrapper in your application, needing more could be a symptom of poor design.
Comment below if you find yourself in a jam.&lt;/em&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h3&gt;Step 2 &amp;ndash; The Nested Layout&lt;/h3&gt;

&lt;p&gt;  If the wrapper is the bootstrap to our presentation layer, then a nested layout is the layout to our presentation layer.
  A nested layout is also just a regular &lt;code&gt;Zend_View&lt;/code&gt; script that will be consumed by the wrapper we just created.
  It contains markup that is specific to your application. These blocks usually include the header and footer,
  and possibly different columns with placeholders for capture. Our wrapper looks for a layout called &lt;em&gt;default&lt;/em&gt;.
  For the sake of the example we&amp;rsquo;re keeping it simple:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* application/views/layouts/default.phtml */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 

&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;container&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;    
    &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;header&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="ta"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;My Application&lt;span class="ta"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;body&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;content; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;footer&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="ta"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Copyright 2011&lt;span class="ta"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h3&gt;Step 3 &amp;ndash; The View&lt;/h3&gt;

&lt;p&gt;  At this stage you simple allow Zend Framework to serve the view intended. You&amp;rsquo;re done.
  It&amp;rsquo;s a surprisingly simple solution that should prove to be worth the time taken to put in place.&lt;/p&gt;

&lt;h2&gt;Interchanging Nested Layouts&lt;/h2&gt;

&lt;p&gt;  Further along your development you may find a need to switch out the layout for different reasons.
  Here are a couple ways to modify which nested layout will be used.&lt;/p&gt;

&lt;h3&gt;Changing the Nested Layout from a View&lt;/h3&gt;

&lt;p&gt;  The default nested layout will more than likely be the layout you use for most pages, but in the case
  that you need a different layout &amp;ndash; specifying one is easy. A common use case for this is switching to
  a modal layout, a centered window for less content. A good example is a login page:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;nestedLayout = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;modal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headTitle()-&amp;gt;append = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;Login&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="ta"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Please Login&lt;span class="ta"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;form; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  This will tell the wrapper that you want to use the layout &lt;code&gt;application/views/layouts/modal.phtml&lt;/code&gt; instead
  of the default.&lt;/p&gt;

&lt;h3&gt;A Nested Layout Per Module&lt;/h3&gt;

&lt;p&gt;  Another common scenario in Zend Framework is the use case of having a layout defined for each module &amp;ndash; admin,
  www, editor, what have you. This is a slightly more advanced problem that can be solved using a Front Controller
  Plugin. Start by registering our soon-to-be plugin:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;; application/configs/application.ini

resources.frontController.plugins.nl = Application_Plugin_NestedLayoutPerModule&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  Now define a plugin that sets the nested layout to the module&amp;rsquo;s name&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="c"&gt;/* application/plugins/NestedLayoutPerModule.php */&lt;/span&gt;

&lt;span class="co"&gt;Application_Plugin_NestedLayoutPerModule&lt;/span&gt;
    &lt;span class="r"&gt;extends&lt;/span&gt; &lt;span class="co"&gt;Zend_Controller_Plugin_Abstract&lt;/span&gt;
{
    &lt;span class="r"&gt;public&lt;/span&gt; &lt;span class="r"&gt;function&lt;/span&gt; &lt;span class="fu"&gt;dispatchLoopStartup&lt;/span&gt;(&lt;span class="co"&gt;Zend_Controller_Request_Abstract&lt;/span&gt; &lt;span class="lv"&gt;$request&lt;/span&gt;)
    {
        &lt;span class="lv"&gt;$module&lt;/span&gt; = &lt;span class="lv"&gt;$request&lt;/span&gt;-&amp;gt;getModuleName();

        &lt;span class="lv"&gt;$front&lt;/span&gt; = &lt;span class="co"&gt;Zend_Controller_Front&lt;/span&gt;::getInstance();
        &lt;span class="lv"&gt;$layout&lt;/span&gt; = &lt;span class="lv"&gt;$front&lt;/span&gt;-&amp;gt;getParam(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;bootstrap&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;)-&amp;gt;getResource(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;layout&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;);

        &lt;span class="lv"&gt;$layoutDir&lt;/span&gt; = &lt;span class="lv"&gt;$front&lt;/span&gt;-&amp;gt;getModuleDirectory() . &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;/views/layouts&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;;
        &lt;span class="lv"&gt;$layout&lt;/span&gt;-&amp;gt;setScriptPath(&lt;span class="lv"&gt;$layoutDir&lt;/span&gt;);     
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  If you were accessing an admin module via the uri &lt;code&gt;/admin&lt;/code&gt;, then the plugin would look for a file called
  &lt;code&gt;application/modules/admin/views/layouts/default.phtml&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;Variations &amp;ndash; Nesting Nested Layouts&lt;/h2&gt;

&lt;p&gt;  Once your nested layouts become fairly advanced, you might find it useful to create specialization yet again. Say,
  for example, up until now your main nested layout has a big fat 1 column layout. It&amp;rsquo;s served you well up until
  this point. Now you have a need to add a 2 and 3 column layout. You can create a new nested layout of course, but
  then you would have to recreate your extensive header and footer markup you crafted so carefully. You could move
  the header and footer to partials and pull them in in both nested layouts &amp;ndash; but that requires an uneccessary contract.
  Instead, lets create another layout layer, a variation. To use variations, follow the same pattern as nested layouts.
  Replace &lt;code&gt;echo $this-&amp;gt;layout()-&amp;gt;content&lt;/code&gt; with the following to allow your nested layout to look for the
  presense of a variation layout:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* application/views/layouts/default.phtml */&lt;/span&gt; ?&amp;lt;

&amp;lt;?php &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;container&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;header&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="ta"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;My Application&lt;span class="ta"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;body&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 

        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* VARIATIONS SUPPORT */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;if&lt;/span&gt;(&lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;variation): &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;  
            &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;setLayout(&lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;variation); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
            &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;render();  &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;else&lt;/span&gt;: &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
            &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;content; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;endif&lt;/span&gt;;&lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 

    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;footer&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
        &lt;span class="ta"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Copyright 2011&lt;span class="ta"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  Now lets create a 2 column variation for our default nested layout:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* application/views/layouts/variations/default-2col.phtml */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 

&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;main&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;content; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;sidebar&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt; 
    &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;placeholder(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;sidebar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt; 
    &lt;span class="ta"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Copyright 2011&lt;span class="ta"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt; 
&lt;span class="ta"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  Finally, from our login page, let&amp;rsquo;s take advantage of our new variation:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;layout()-&amp;gt;variation = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;default-2col&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;headTitle()-&amp;gt;append = &lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;Login&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="ta"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Please Login&lt;span class="ta"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;form; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;placeholder(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;sidebar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;)-&amp;gt;captureStart(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Forgot your password? That's unfortunate.&lt;span class="ta"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;placeholder(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;sidebar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;)-&amp;gt;captureEnd(); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;&lt;code&gt;Zend_View&lt;/code&gt; is very flexible&lt;/h2&gt;

&lt;p&gt;  Zend Framework makes it easy to create more advanced view layers like this. It&amp;rsquo;s sometimes useful
  to have a peep at how other framework&amp;rsquo;s addressing this problem, too. Symfony2, for example, uses a
  templating language called &lt;a href="http://www.twig-project.org/"&gt;Twig&lt;/a&gt; which makes it easy to implement this
  pattern. They&amp;rsquo;ve detailed their approach in their section on
  &lt;a href="http://symfony.com/doc/2.0/book/templating.html#three-level-inheritance"&gt;Three-level Inheritance&lt;/a&gt;. It&amp;rsquo;s
  impressive that Zend Framework, who supplies no templating language by default (other than PHP itself), allows
  for such crisp plain &amp;lsquo;ol PHP view implementations.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/creating-3-step-layouts-with-zendlayout"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/creating-3-step-layouts-with-zendlayout#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=GEbbVzfrvFQ:tMha-3H74Xg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=GEbbVzfrvFQ:tMha-3H74Xg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=GEbbVzfrvFQ:tMha-3H74Xg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=GEbbVzfrvFQ:tMha-3H74Xg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=GEbbVzfrvFQ:tMha-3H74Xg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=GEbbVzfrvFQ:tMha-3H74Xg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/GEbbVzfrvFQ" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/Fa6AQf-YmP8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="323" width="525" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2011-03-21/gqCaHjvbAfzndDBBfzxquxGqksIJoliHwksxsHtEdtaecqdalJcdldCrjhyc/3stepview.png">
        <media:thumbnail height="308" width="500" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2011-03-21/gqCaHjvbAfzndDBBfzxquxGqksIJoliHwksxsHtEdtaecqdalJcdldCrjhyc/3stepview.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://www.developly.com/creating-3-step-layouts-with-zendlayout</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/GEbbVzfrvFQ/creating-3-step-layouts-with-zendlayout</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 09 Mar 2011 12:00:00 -0800</pubDate>
      <title>Installing Memcached as a Windows Service.</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/-77SiNDr-hQ/installing-memcached-as-a-windows-service</link>
      <guid isPermaLink="false">http://www.developly.com/installing-memcached-as-a-windows-service</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Here's a quick cmd recipe for installing memcached as a service on windows. This script uses memcached 1.2.4, but you can check for newer versions from &lt;a href="http://www.splinedancer.com/memcached-win32/" title="memcached for Windows"&gt;splinedancer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;dir C:/this/is/the/install/dir
curl -o memcached.zip http://www.splinedancer.com/memcached-win32/memcached-1.2.4-Win32-Preview-20080309_bin.zip
curl -o unzip.exe http://stahlforce.com/dev/unzip.exe
unzip.exe memcached.zip
memcached.exe -d install
memcached.exe -d start
del unzip.exe&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;code&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;If everything worked, you should be able to run services.msc and check that the memcached service exists, set to automatic, and is running.&lt;/p&gt;
&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;a href="http://posterous.com/getfile/files.posterous.com/temp-2011-03-09/EwbbtuaadasmmCJqGuauhIsmscBFevecxrrsfaodkauBdItgCmEtbeiwffvc/memservices.png.scaled1000.png"&gt;&lt;img alt="Memservices" height="256" src="http://posterous.com/getfile/files.posterous.com/temp-2011-03-09/EwbbtuaadasmmCJqGuauhIsmscBFevecxrrsfaodkauBdItgCmEtbeiwffvc/memservices.png.scaled500.png" width="500" /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/installing-memcached-as-a-windows-service"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/installing-memcached-as-a-windows-service#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=MBGpajQVh5E:fUZfN_r_HZY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=MBGpajQVh5E:fUZfN_r_HZY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=MBGpajQVh5E:fUZfN_r_HZY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=MBGpajQVh5E:fUZfN_r_HZY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=MBGpajQVh5E:fUZfN_r_HZY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=MBGpajQVh5E:fUZfN_r_HZY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/MBGpajQVh5E" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/-77SiNDr-hQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
      <media:content type="image/png" height="364" width="712" url="http://getfile3.posterous.com/getfile/files.posterous.com/temp-2011-03-09/EwbbtuaadasmmCJqGuauhIsmscBFevecxrrsfaodkauBdItgCmEtbeiwffvc/memservices.png">
        <media:thumbnail height="256" width="500" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2011-03-09/EwbbtuaadasmmCJqGuauhIsmscBFevecxrrsfaodkauBdItgCmEtbeiwffvc/memservices.png.scaled500.png" />
      </media:content>
    <feedburner:origLink>http://www.developly.com/installing-memcached-as-a-windows-service</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/MBGpajQVh5E/installing-memcached-as-a-windows-service</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 04 Mar 2011 15:04:00 -0800</pubDate>
      <title>Checking if a Placeholder Exists in Zend Framework's Zend_View</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/CHOf5lUBsyY/checking-if-a-placeholder-exists-in-zend-fram</link>
      <guid isPermaLink="false">http://www.developly.com/checking-if-a-placeholder-exists-in-zend-fram</guid>
      <description>&lt;p&gt;
	&lt;p&gt;  A common scenario we&amp;rsquo;ve run into while implementing front ends with Zend Framework is the need to be able to check for the existence of a specific placeholder.
  If data has been captured in placeholder header for example, then output the placeholder inside this kind of visual structure.&lt;/p&gt;

&lt;p&gt;  &lt;em&gt;There are two ways to accomplish this.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;Checking the Registry&lt;/h2&gt;

&lt;p&gt;  This is the quickest way, by questioning the placeholder helper&amp;rsquo;s registry:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $pH Zend_View_Helper_Placeholder */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="lv"&gt;$pH&lt;/span&gt; = &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;getHelper(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;placeholder&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;if&lt;/span&gt; (&lt;span class="lv"&gt;$pH&lt;/span&gt;-&amp;gt;getRegistry()-&amp;gt;containerExists(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;myStuff&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;)): &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;myStuff&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$pH&lt;/span&gt;-&amp;gt;placeholder(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;myStuff&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;endif&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;Extending Zend_View_Helper_Placeholder&lt;/h2&gt;

&lt;p&gt;  If you want to make things a little less verbose, you could override the the placeholder helper entirely to enable checking.
  Add the following to &lt;code&gt;application.ini&lt;/code&gt;:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;;application/configs/application.ini
resources.view.helperPath.MyApp_View_Helper = APPLICATION_PATH &amp;quot;/../library/MyApp/View/Helper&amp;quot;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  Then create a helper that extends &lt;code&gt;Zend_View_Helper_Placeholder&lt;/code&gt;:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="c"&gt;/**
 * MyApp/View/Helper/Placeholder.php
 * allow quick checking of container existence
 */&lt;/span&gt;
&lt;span class="r"&gt;class&lt;/span&gt; &lt;span class="cl"&gt;MyApp_View_Helper_Placeholder&lt;/span&gt;
    &lt;span class="r"&gt;extends&lt;/span&gt; &lt;span class="co"&gt;Zend_View_Helper_Placeholder&lt;/span&gt;
{
    &lt;span class="r"&gt;public&lt;/span&gt; &lt;span class="r"&gt;function&lt;/span&gt; &lt;span class="fu"&gt;placeholder&lt;/span&gt;(&lt;span class="lv"&gt;$name&lt;/span&gt;, &lt;span class="lv"&gt;$checkOnly&lt;/span&gt;=&lt;span class="pc"&gt;false&lt;/span&gt;)
    {
        &lt;span class="r"&gt;if&lt;/span&gt; (&lt;span class="lv"&gt;$checkOnly&lt;/span&gt;) {
          &lt;span class="r"&gt;return&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;__isset(&lt;span class="lv"&gt;$name&lt;/span&gt;);
        }
    }
    &lt;span class="r"&gt;public&lt;/span&gt; &lt;span class="r"&gt;function&lt;/span&gt; &lt;span class="fu"&gt;__isset&lt;/span&gt;(&lt;span class="lv"&gt;$container&lt;/span&gt;)
    {
        &lt;span class="r"&gt;return&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;getRegistry()-&amp;gt;containerExists(&lt;span class="lv"&gt;$container&lt;/span&gt;);
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  Now checking if a placeholder exists will look like so:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="c"&gt;/* @var $this Zend_View */&lt;/span&gt; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;if&lt;/span&gt; (&lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;placeholder(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;myStuff&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;, &lt;span class="pc"&gt;true&lt;/span&gt;)): &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="an"&gt;class&lt;/span&gt;=&lt;span class="s"&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;span class="k"&gt;myStuff&lt;/span&gt;&lt;span class="dl"&gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="ta"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="pd"&gt;echo&lt;/span&gt; &lt;span class="lv"&gt;$this&lt;/span&gt;-&amp;gt;placeholder(&lt;span class="s"&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="k"&gt;myStuff&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;/span&gt;); &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;
    &lt;span class="ta"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="idl"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="r"&gt;endif&lt;/span&gt;; &lt;span class="idl"&gt;?&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/checking-if-a-placeholder-exists-in-zend-fram"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/checking-if-a-placeholder-exists-in-zend-fram#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=JS529i6hPPg:784nf49n2hE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=JS529i6hPPg:784nf49n2hE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=JS529i6hPPg:784nf49n2hE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=JS529i6hPPg:784nf49n2hE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=JS529i6hPPg:784nf49n2hE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=JS529i6hPPg:784nf49n2hE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/JS529i6hPPg" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/CHOf5lUBsyY" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/checking-if-a-placeholder-exists-in-zend-fram</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/JS529i6hPPg/checking-if-a-placeholder-exists-in-zend-fram</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 06 Dec 2010 10:01:00 -0800</pubDate>
      <title>Using Google Apps or Gmail with Zend_Mail</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/Od7lc-3dkAM/using-google-apps-or-gmail-with-zendmail</link>
      <guid isPermaLink="false">http://www.developly.com/using-google-apps-or-gmail-with-zendmail</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Here's a recipe for hooking up Zend_Mail with Google mail through application.ini with the help of &amp;nbsp;Zend_Application_Resource_Mail. It's a quick and light config and will have you sending emails in no time. Enjoy.&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;; in application.ini
resources.mail.transport.type = smtp
resources.mail.transport.host = &amp;quot;smtp.gmail.com&amp;quot;
resources.mail.transport.auth = login
resources.mail.transport.ssl = ssl
resources.mail.transport.port = 465
; the following could also be a gmail account
resources.mail.transport.username = myaccount@mydomain.com 
resources.mail.transport.password = mypassword
resources.mail.transport.register = true
; the following account needs to be linked to your above account
resources.mail.defaultFrom.email = anotheraccount@anotherdomain
resources.mail.defaultFrom.name = &amp;quot;Notifications&amp;quot;
resources.mail.defaultReplyTo.email = anotheraccount@anotherdomain
resources.mail.defaultReplyTo.name = &amp;quot;Notifications&amp;quot;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/using-google-apps-or-gmail-with-zendmail"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/using-google-apps-or-gmail-with-zendmail#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=O2xWKyssXFs:S1qhipasYNo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=O2xWKyssXFs:S1qhipasYNo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=O2xWKyssXFs:S1qhipasYNo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=O2xWKyssXFs:S1qhipasYNo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=O2xWKyssXFs:S1qhipasYNo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=O2xWKyssXFs:S1qhipasYNo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/O2xWKyssXFs" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/Od7lc-3dkAM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/using-google-apps-or-gmail-with-zendmail</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/O2xWKyssXFs/using-google-apps-or-gmail-with-zendmail</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 27 Nov 2010 19:16:00 -0800</pubDate>
      <title>Zend Framework Production Virtual Host - A How To</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/1h5EtT-OlGM/zend-framework-production-virtual-host-a-how</link>
      <guid isPermaLink="false">http://www.developly.com/zend-framework-production-virtual-host-a-how</guid>
      <description>&lt;p&gt;
	&lt;p&gt;
&lt;div style="color: #000000; font-family: Arial, Helvetica, sans-serif; font-size: 13px; background-color: #ffffff; margin: 8px;"&gt;
&lt;p&gt;To create a production virtual host for Zend Framework, you need to do two things: recreate the rewrite rules found in .htaccess, and specify a different APPLICATION_ENV. Heres the recipe:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;&amp;lt;VirtualHost *:80&amp;gt;
    ServerName www.myapplication.com
    DocumentRoot  /var/www/html/myapplication.com/public
    RewriteEngine off
    &amp;lt;Location /&amp;gt;
        SetEnv APPLICATION_ENV production

        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]

        #API RULES, if you need them
        RewriteRule ^api/v1/xmlrpc api/v1/xmlrpc.php [L]
        RewriteRule ^api/v1/soap api/v1/soap.php [L]
        RewriteRule ^api/v1/jsonrpc api/v1/jsonrpc.php [L]
        RewriteRule ^api/v1/amfrpc api/v1/amfrpc.php [L]
        RewriteRule ^api/v1/rest api/v1/rest.php [L]

        RewriteRule ^.*$ /index.php [NC,L]
    &amp;lt;/Location&amp;gt;
&amp;lt;/VirtualHost&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/zend-framework-production-virtual-host-a-how"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/zend-framework-production-virtual-host-a-how#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3obLm_GivMo:QKrMR6dRI7g:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3obLm_GivMo:QKrMR6dRI7g:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3obLm_GivMo:QKrMR6dRI7g:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=3obLm_GivMo:QKrMR6dRI7g:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3obLm_GivMo:QKrMR6dRI7g:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=3obLm_GivMo:QKrMR6dRI7g:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/3obLm_GivMo" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/1h5EtT-OlGM" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/zend-framework-production-virtual-host-a-how</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/3obLm_GivMo/zend-framework-production-virtual-host-a-how</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 24 Nov 2010 11:45:00 -0800</pubDate>
      <title>Installing MySQL on EC2's Amazon Linux AMI</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/FFUPQeuDYgQ/installing-mysql-on-ec2s-amazon-linux-ami</link>
      <guid isPermaLink="false">http://www.developly.com/installing-mysql-on-ec2s-amazon-linux-ami</guid>
      <description>&lt;p&gt;
	&lt;p&gt;  MySQL is one of the easiest things to install. Here&amp;rsquo;s a quick recipe:&lt;/p&gt;

&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;yum install mysql mysql&lt;span class="argument"&gt;-server&lt;/span&gt; mysql&lt;span class="argument"&gt;-libs&lt;/span&gt;
service mysqld start
chkconfig &lt;span class="other"&gt;-&lt;/span&gt;&lt;span class="argument"&gt;-levels&lt;/span&gt; &lt;span class="number"&gt;235&lt;/span&gt; mysqld on
mysql_secure_installation&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;  Read the &lt;a href="http://dev.mysql.com/doc/refman/5.5/en/mysql-secure-installation.html"&gt;MySQL &lt;code&gt;mysql_secure_installation&lt;/code&gt; guide&lt;/a&gt;.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/installing-mysql-on-ec2s-amazon-linux-ami"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/installing-mysql-on-ec2s-amazon-linux-ami#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=FpsMJHSt2xs:KAcZGZIglz4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=FpsMJHSt2xs:KAcZGZIglz4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=FpsMJHSt2xs:KAcZGZIglz4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=FpsMJHSt2xs:KAcZGZIglz4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=FpsMJHSt2xs:KAcZGZIglz4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=FpsMJHSt2xs:KAcZGZIglz4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/FpsMJHSt2xs" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/FFUPQeuDYgQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/installing-mysql-on-ec2s-amazon-linux-ami</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/FpsMJHSt2xs/installing-mysql-on-ec2s-amazon-linux-ami</feedburner:origLink></item>
    <item>
      <pubDate>Tue, 23 Nov 2010 16:26:00 -0800</pubDate>
      <title>Installing Memcached on Amazon Linux AMI - Quick and Easy.</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/Q7gDz3yObBc/installing-memcached-on-amazon-linux-ami</link>
      <guid isPermaLink="false">http://www.developly.com/installing-memcached-on-amazon-linux-ami</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;em&gt;&lt;span style="font-size: large;"&gt;Update: memcached has been added to amzn.repo, so 'yum install memcached' will do.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Here's a quick recipe for installing memcached on EC2 Amazon Linux AMI 1.0.&amp;nbsp;&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;yum install gcc libevent libevent-devel
cd /usr/local/src
wget http://memcached.org/latest
tar -xf memcached-*.tar.gz
cd memcached-*
./configure
make &amp;amp;&amp;amp; make install&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Memcached will be installed to /usr/local/bin. Let's make sure everything went well by running memcached:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;/usr/local/bin/memcached -u root -d&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Then we'll make sure it's running&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;ps aux | grep memcached&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And finally kill it.&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;pkill memcached&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;h3&gt;Going all out - building a memcached rpm&lt;/h3&gt;
&lt;p&gt;If you're installing memcached on multiple machines then having an RPM handy is preferred. Make sure to run this as the ec2-user and not root.&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;cd ~
sudo yum install gcc libevent libevent-devel rpm-build perl-Test-Base
echo &amp;quot;%_topdir /home/ec2-user/rpmbuild&amp;quot; &amp;gt;&amp;gt; ~/.rpmmacros
mkdir -p /home/ec2-user/rpmbuild/{SPECS,BUILD,SRPMS,RPMS,SOURCES}
wget http://memcached.org/latest
rpmbuild -ta memcached-*.tar.gz&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The RPM will be created in ~/rpmbuild/RPMS/x86_64/ or ~/rpmbuild/RPMS/i386/ depending on whether you chose a 32 or 64 bit AMI. Copy the rpm to your home directory and run the command below to install memcached to /usr/bin/memcache&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;sudo yum localinstall memcached-*.rpm --nogpgcheck&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;The beauty of this approach is that you can now do the following to start or stop memcached&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;service memcached status
service memcached start
service memcached stop&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And finally you can enable memcached at startup with this simple command:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;chkconfig memcached on&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/installing-memcached-on-amazon-linux-ami"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/installing-memcached-on-amazon-linux-ami#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=dBPs_OX14YY:CpjBQm6TV4Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=dBPs_OX14YY:CpjBQm6TV4Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=dBPs_OX14YY:CpjBQm6TV4Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=dBPs_OX14YY:CpjBQm6TV4Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=dBPs_OX14YY:CpjBQm6TV4Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=dBPs_OX14YY:CpjBQm6TV4Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/dBPs_OX14YY" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/Q7gDz3yObBc" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/installing-memcached-on-amazon-linux-ami</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/dBPs_OX14YY/installing-memcached-on-amazon-linux-ami</feedburner:origLink></item>
    <item>
      <pubDate>Sat, 20 Nov 2010 15:40:00 -0800</pubDate>
      <title>Getting an svndump from Google Code on Windows.</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/69hmfZpGDZ8/getting-an-svndump-from-google-code-on-window</link>
      <guid isPermaLink="false">http://www.developly.com/getting-an-svndump-from-google-code-on-window</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Migrating from Google Code SVN is no simple task. Windows user's should know this especially. Here's a quick recipe for obtaining an svndump with a URL on Windows.&lt;/p&gt;
&lt;p&gt;First, Download and install &lt;a href="http://www.sliksvn.com/en/download" title="Slik SVN"&gt;Slik Subversion&lt;/a&gt;&amp;nbsp;and &lt;a href="http://svk.bestpractical.com/view/SVKWin32"&gt;SVK&lt;/a&gt;. Then make a local SVK repository from your public URL by running the following command:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;svk ls http://my-repository.googlecode.com/svn&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Finally, make an svndump minus the first two revisions (these are SVK specific) by running this command:&lt;/p&gt;
&lt;div class="CodeRay"&gt;
  &lt;div class="code"&gt;&lt;pre&gt;svnadmin dump -r2:HEAD C:\Users\Bob\.svk\local &amp;gt; bobs-dump&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Hopefully this helps fellow Windower's in need.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/getting-an-svndump-from-google-code-on-window"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/getting-an-svndump-from-google-code-on-window#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=RhozBZa12Kk:VoYfBjl3AZY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=RhozBZa12Kk:VoYfBjl3AZY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=RhozBZa12Kk:VoYfBjl3AZY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=RhozBZa12Kk:VoYfBjl3AZY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=RhozBZa12Kk:VoYfBjl3AZY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=RhozBZa12Kk:VoYfBjl3AZY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/RhozBZa12Kk" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/69hmfZpGDZ8" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/getting-an-svndump-from-google-code-on-window</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/RhozBZa12Kk/getting-an-svndump-from-google-code-on-window</feedburner:origLink></item>
    <item>
      <pubDate>Mon, 08 Nov 2010 13:15:00 -0800</pubDate>
      <title>Installing Zend Server CE with Puppet</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/b-HfIOKU3bo/installing-zend-server-ce-with-puppet</link>
      <guid isPermaLink="false">http://www.developly.com/installing-zend-server-ce-with-puppet</guid>
      <description>&lt;p&gt;
	&lt;p style="font-size: 13px; color: #000000; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;em&gt;This article assumes working knowledge of installing and configuring&amp;nbsp;&lt;a href="http://www.puppetlabs.com/" title="Data Center Automation"&gt;Puppet&lt;/a&gt;; if you aren't then read our article about&amp;nbsp;&lt;a href="http://3engineers.clariondoor.com/installing-puppet-on-ec2s-amazon-linux-ami"&gt;Installing Puppet on EC2's Amazon Linux AMI&lt;/a&gt;&amp;nbsp;or go to the source at&amp;nbsp;&lt;a href="http://docs.puppetlabs.com/"&gt;http://docs.puppetlabs.com/&lt;/a&gt;.&amp;nbsp;&lt;/em&gt;&lt;em&gt;At the time of this writing, Zend Server CE (PHP 5.3) 5.0.3 and Amazon Linux AMI 1.0 were used.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p style="font-size: 13px; color: #000000; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;em&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Puppetzendserver" height="117" src="http://posterous.com/getfile/files.posterous.com/temp-2010-11-08/IAFGEGCsIgzlawEsvsdljqEIuamwGeAannJDgDcnjmBupsgtoqgsxFlsroyc/puppetzendserver.jpg.scaled500.jpg" width="450" /&gt;
&lt;/div&gt;
&lt;/em&gt;&lt;/p&gt;
&lt;p style="font-size: 13px; color: #000000; font-family: Arial, Helvetica, sans-serif;"&gt;As convenient as pre-built AMI's like this&amp;nbsp;&lt;a href="http://aws.amazon.com/amis/2663"&gt;32bit Zend Server CE 4 AMI&lt;/a&gt;&amp;nbsp;are,&amp;nbsp;they leave something to be desired. How do you manage the machine&amp;nbsp;&lt;em&gt;after&lt;/em&gt;&amp;nbsp;you deploy it? How do you upgrade Zend Server or its dependencies? This is where Puppet comes in. Puppet lets you define your machine in a simple modeling&amp;nbsp;language, called Puppet Language. Once you have your machine declarations and your puppetmaster server running, you can orchestrate any number of machines. Every 30 minutes, by default, your clients will check in with the puppetmaster and update their configuration based on the corresponding node declaration. This makes it possible to upgrade packages or entirely restructure a box all from your succinct little declaration file. You can also push updates directly to your client machines. It's pretty nifty.&lt;/p&gt;
&lt;p style="font-size: 13px; color: #000000; font-family: Arial, Helvetica, sans-serif;"&gt;I've whipped up a recipe for installing Zend Server CE on a rhel-flavored distro. In our case, that distro is Amazon Linux AMI but this should also work with Red Hat Enterprise, CentOS, and Fedora. Enjoy!&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-ruby"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;span rel="#L4" id="L4"&gt;4&lt;/span&gt;
&lt;span rel="#L5" id="L5"&gt;5&lt;/span&gt;
&lt;span rel="#L6" id="L6"&gt;6&lt;/span&gt;
&lt;span rel="#L7" id="L7"&gt;7&lt;/span&gt;
&lt;span rel="#L8" id="L8"&gt;8&lt;/span&gt;
&lt;span rel="#L9" id="L9"&gt;9&lt;/span&gt;
&lt;span rel="#L10" id="L10"&gt;10&lt;/span&gt;
&lt;span rel="#L11" id="L11"&gt;11&lt;/span&gt;
&lt;span rel="#L12" id="L12"&gt;12&lt;/span&gt;
&lt;span rel="#L13" id="L13"&gt;13&lt;/span&gt;
&lt;span rel="#L14" id="L14"&gt;14&lt;/span&gt;
&lt;span rel="#L15" id="L15"&gt;15&lt;/span&gt;
&lt;span rel="#L16" id="L16"&gt;16&lt;/span&gt;
&lt;span rel="#L17" id="L17"&gt;17&lt;/span&gt;
&lt;span rel="#L18" id="L18"&gt;18&lt;/span&gt;
&lt;span rel="#L19" id="L19"&gt;19&lt;/span&gt;
&lt;span rel="#L20" id="L20"&gt;20&lt;/span&gt;
&lt;span rel="#L21" id="L21"&gt;21&lt;/span&gt;
&lt;span rel="#L22" id="L22"&gt;22&lt;/span&gt;
&lt;span rel="#L23" id="L23"&gt;23&lt;/span&gt;
&lt;span rel="#L24" id="L24"&gt;24&lt;/span&gt;
&lt;span rel="#L25" id="L25"&gt;25&lt;/span&gt;
&lt;span rel="#L26" id="L26"&gt;26&lt;/span&gt;
&lt;span rel="#L27" id="L27"&gt;27&lt;/span&gt;
&lt;span rel="#L28" id="L28"&gt;28&lt;/span&gt;
&lt;span rel="#L29" id="L29"&gt;29&lt;/span&gt;
&lt;span rel="#L30" id="L30"&gt;30&lt;/span&gt;
&lt;span rel="#L31" id="L31"&gt;31&lt;/span&gt;
&lt;span rel="#L32" id="L32"&gt;32&lt;/span&gt;
&lt;span rel="#L33" id="L33"&gt;33&lt;/span&gt;
&lt;span rel="#L34" id="L34"&gt;34&lt;/span&gt;
&lt;span rel="#L35" id="L35"&gt;35&lt;/span&gt;
&lt;span rel="#L36" id="L36"&gt;36&lt;/span&gt;
&lt;span rel="#L37" id="L37"&gt;37&lt;/span&gt;
&lt;span rel="#L38" id="L38"&gt;38&lt;/span&gt;
&lt;span rel="#L39" id="L39"&gt;39&lt;/span&gt;
&lt;span rel="#L40" id="L40"&gt;40&lt;/span&gt;
&lt;span rel="#L41" id="L41"&gt;41&lt;/span&gt;
&lt;span rel="#L42" id="L42"&gt;42&lt;/span&gt;
&lt;span rel="#L43" id="L43"&gt;43&lt;/span&gt;
&lt;span rel="#L44" id="L44"&gt;44&lt;/span&gt;
&lt;span rel="#L45" id="L45"&gt;45&lt;/span&gt;
&lt;span rel="#L46" id="L46"&gt;46&lt;/span&gt;
&lt;span rel="#L47" id="L47"&gt;47&lt;/span&gt;
&lt;span rel="#L48" id="L48"&gt;48&lt;/span&gt;
&lt;span rel="#L49" id="L49"&gt;49&lt;/span&gt;
&lt;span rel="#L50" id="L50"&gt;50&lt;/span&gt;
&lt;span rel="#L51" id="L51"&gt;51&lt;/span&gt;
&lt;span rel="#L52" id="L52"&gt;52&lt;/span&gt;
&lt;span rel="#L53" id="L53"&gt;53&lt;/span&gt;
&lt;span rel="#L54" id="L54"&gt;54&lt;/span&gt;
&lt;span rel="#L55" id="L55"&gt;55&lt;/span&gt;
&lt;span rel="#L56" id="L56"&gt;56&lt;/span&gt;
&lt;span rel="#L57" id="L57"&gt;57&lt;/span&gt;
&lt;span rel="#L58" id="L58"&gt;58&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="c1"&gt;# /etc/puppet/modules/zendserverce/manifests/init.pp&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="n"&gt;zendserverce&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# 1.) Make sure Zend yum repos are installed &lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;yumrepo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Zend&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;descr&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Zend Server&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;baseurl&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://repos.zend.com/zend-server/rpm/\$basearch&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;enabled&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC11"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;gpgcheck&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC12"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;gpgkey&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://repos.zend.com/zend.key&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC13"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC14"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;yumrepo&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Zend_noarch&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC15"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;descr&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;Zend Server - noarch&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC16"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;baseurl&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://repos.zend.com/zend-server/rpm/noarch&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC17"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;enabled&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC18"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;gpgcheck&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC19"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;gpgkey&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;http://repos.zend.com/zend.key&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC20"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC21"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC22"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# 2.) Install Zend Server dependencies&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC23"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC24"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;httpd-devel&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC25"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;ensure&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;installed&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC26"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC27"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;phpmemcache&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC28"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;php-5.3-memcache-zend-server&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC29"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;ensure&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;installed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC30"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC31"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="no"&gt;Yumrepo&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Zend&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC32"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="no"&gt;Yumrepo&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Zend_noarch&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC33"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC34"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC35"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC36"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# 3.) Install Zend Server CE&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC37"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC38"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;package&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;zendserverce&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC39"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;zend-server-ce-php-5.3&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC40"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;ensure&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;installed&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC41"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;/div&gt;&lt;div class="line" id="LC42"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="no"&gt;Yumrepo&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Zend&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;/div&gt;&lt;div class="line" id="LC43"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="no"&gt;Yumrepo&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;Zend_noarch&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;/div&gt;&lt;div class="line" id="LC44"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="no"&gt;Package&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;httpd-devel&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC45"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="no"&gt;Package&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;phpmemcache&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC46"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="o"&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC47"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC48"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# fix admin panel bug where&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC49"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="c1"&gt;# logs arent readable by default&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC50"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;file&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;/var/log/httpd&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC51"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;mode&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;755&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC52"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Package&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;zendserverce&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC53"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC54"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="n"&gt;service&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;httpd&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC55"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;ensure&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;running&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC56"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;require&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;Package&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;quot;zendserverce&amp;quot;&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC57"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC58"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/installing-zend-server-ce-with-puppet"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/installing-zend-server-ce-with-puppet#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3FOdn6v9xzE:pA-VBtZlSx4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3FOdn6v9xzE:pA-VBtZlSx4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3FOdn6v9xzE:pA-VBtZlSx4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=3FOdn6v9xzE:pA-VBtZlSx4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=3FOdn6v9xzE:pA-VBtZlSx4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=3FOdn6v9xzE:pA-VBtZlSx4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/3FOdn6v9xzE" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/b-HfIOKU3bo" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="117" width="450" url="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2010-11-08/IAFGEGCsIgzlawEsvsdljqEIuamwGeAannJDgDcnjmBupsgtoqgsxFlsroyc/puppetzendserver.jpg">
        <media:thumbnail height="117" width="450" url="http://getfile2.posterous.com/getfile/files.posterous.com/temp-2010-11-08/IAFGEGCsIgzlawEsvsdljqEIuamwGeAannJDgDcnjmBupsgtoqgsxFlsroyc/puppetzendserver.jpg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://www.developly.com/installing-zend-server-ce-with-puppet</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/3FOdn6v9xzE/installing-zend-server-ce-with-puppet</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 29 Oct 2010 17:23:00 -0700</pubDate>
      <title>Using AjaxContext with Zend_Rest_Controller and Zend_Rest_Route</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/qsOz1vxY1Xg/using-ajaxcontext-with-zendrestcontroller-and</link>
      <guid isPermaLink="false">http://www.developly.com/using-ajaxcontext-with-zendrestcontroller-and</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;em&gt;If you haven't gotten a hang of setting up Zend_Rest_Route's with Zend_Config_Ini check out our first post &lt;a href="http://3engineers.clariondoor.com/setting-up-restful-routes-with-zendrestroute" title="Setting up RESTful routes with Zend_Rest_Route and Zend_Config_Ini"&gt;here&lt;/a&gt;.&amp;nbsp;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Not only does using REST in Zend Framework make access to your common resources uniform and simple, they also can do the same for your front end. Instead of making new actions for every ajax request, simply reuse the same actions your REST controllers already have. Need to get a json representation of all resources of a certain type (say articles), then re-use ArticlesController::indexAction. Need to get just one? ArticlesController::getAction is your man. Create, update, or delete? PostAction, putAction, and deleteAction, respectively. Using the AjaxContext action helper, this is made possible in only a few lines. The example below uses Articles as the example resource at hand, and shows you how to interact with every action of your REST controller from your JavaScript front-end. We use Dojo to streamline the different type of AJAX calls but it should be fairly easy switching these methods out with those from your favorite library.&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-ini"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="c"&gt;;routes.ini&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;span class="na"&gt;routes.rest.type&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;Zend_Rest_Route&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&lt;span class="na"&gt;routes.rest.default&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;articles&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/using-ajaxcontext-with-zendrestcontroller-and"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/using-ajaxcontext-with-zendrestcontroller-and#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=XqtNBKeKXdA:PsKsGnriMYo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=XqtNBKeKXdA:PsKsGnriMYo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=XqtNBKeKXdA:PsKsGnriMYo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=XqtNBKeKXdA:PsKsGnriMYo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=XqtNBKeKXdA:PsKsGnriMYo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=XqtNBKeKXdA:PsKsGnriMYo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/XqtNBKeKXdA" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/qsOz1vxY1Xg" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/using-ajaxcontext-with-zendrestcontroller-and</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/XqtNBKeKXdA/using-ajaxcontext-with-zendrestcontroller-and</feedburner:origLink></item>
    <item>
      <pubDate>Thu, 21 Oct 2010 23:31:00 -0700</pubDate>
      <title>Setting up RESTful routes with Zend_Rest_Route and Zend_Config_Ini</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/LE0Q4vkvWkY/setting-up-restful-routes-with-zendrestroute</link>
      <guid isPermaLink="false">http://www.developly.com/setting-up-restful-routes-with-zendrestroute</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Lets say you have a thing in your system, a resource rather. That thing is &lt;strong&gt;posts&lt;/strong&gt;. These are the things you need to do with your system's &lt;strong&gt;posts&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;You need to &lt;strong&gt;list all posts&lt;/strong&gt;.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;You need to &lt;strong&gt;list a specific post&lt;/strong&gt;.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;You need to &lt;strong&gt;create new posts&lt;/strong&gt;.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;You need to &lt;strong&gt;update a post.&lt;br /&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;em&gt;You need to &lt;strong&gt;delete a post&lt;/strong&gt;.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Now replace &lt;strong&gt;posts&lt;/strong&gt; with &lt;strong&gt;private messages&lt;/strong&gt;, &lt;strong&gt;tweets&lt;/strong&gt;, &lt;strong&gt;songs&lt;/strong&gt;, &lt;strong&gt;videos&lt;/strong&gt;, or &lt;strong&gt;articles&lt;/strong&gt;. What you'll see is that the basic requirements for all these things are the same. You need to be able to perform &lt;em title="Create Read Update Delete"&gt;CRUD &lt;/em&gt;on all of them. The amount of times this pattern works is just astonishing. And Zend Framework makes solving it trivial. Below is an end to end solution for rigging up Zend_Rest_Route with a Zend_Rest_Controller using Zend_Config_Ini. Enjoy.&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-php"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;span rel="#L4" id="L4"&gt;4&lt;/span&gt;
&lt;span rel="#L5" id="L5"&gt;5&lt;/span&gt;
&lt;span rel="#L6" id="L6"&gt;6&lt;/span&gt;
&lt;span rel="#L7" id="L7"&gt;7&lt;/span&gt;
&lt;span rel="#L8" id="L8"&gt;8&lt;/span&gt;
&lt;span rel="#L9" id="L9"&gt;9&lt;/span&gt;
&lt;span rel="#L10" id="L10"&gt;10&lt;/span&gt;
&lt;span rel="#L11" id="L11"&gt;11&lt;/span&gt;
&lt;span rel="#L12" id="L12"&gt;12&lt;/span&gt;
&lt;span rel="#L13" id="L13"&gt;13&lt;/span&gt;
&lt;span rel="#L14" id="L14"&gt;14&lt;/span&gt;
&lt;span rel="#L15" id="L15"&gt;15&lt;/span&gt;
&lt;span rel="#L16" id="L16"&gt;16&lt;/span&gt;
&lt;span rel="#L17" id="L17"&gt;17&lt;/span&gt;
&lt;span rel="#L18" id="L18"&gt;18&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Bootstrap&lt;/span&gt; &lt;span class="k"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;Zend_Application_Bootstrap_Bootstrap&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="sd"&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC6"&gt;&lt;span class="sd"&gt;     * add routes configuration to the router&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&lt;span class="sd"&gt;     */&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC8"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;__initRouteConfig&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;bootstrap&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;frontController&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC11"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$frontController&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;Zend_Controller_Front&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="na"&gt;getInstance&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC12"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$router&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$frontController&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;getRouter&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC13"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$config&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Zend_Config_Ini&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC14"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nb"&gt;realpath&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;APPLICATION_PATH&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;/configs/routes.ini&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;/div&gt;&lt;div class="line" id="LC15"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nx"&gt;APPLICATION_ENV&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC16"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="nv"&gt;$router&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;addConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$config&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;routes&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC17"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC18"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/setting-up-restful-routes-with-zendrestroute"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/setting-up-restful-routes-with-zendrestroute#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=gUZqp9eSdrk:S3Al6rhKJC4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=gUZqp9eSdrk:S3Al6rhKJC4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=gUZqp9eSdrk:S3Al6rhKJC4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=gUZqp9eSdrk:S3Al6rhKJC4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=gUZqp9eSdrk:S3Al6rhKJC4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=gUZqp9eSdrk:S3Al6rhKJC4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/gUZqp9eSdrk" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/LE0Q4vkvWkY" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
    <feedburner:origLink>http://www.developly.com/setting-up-restful-routes-with-zendrestroute</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/gUZqp9eSdrk/setting-up-restful-routes-with-zendrestroute</feedburner:origLink></item>
    <item>
      <pubDate>Wed, 20 Oct 2010 09:00:00 -0700</pubDate>
      <title>5 online comics developers should RSS</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/286pMqNmz_4/5-online-comics-every-developer-should-rss</link>
      <guid isPermaLink="false">http://www.developly.com/5-online-comics-every-developer-should-rss</guid>
      <description>&lt;p&gt;
	&lt;p&gt;Webcomics are great. Well, some are. Most are too long, posted too often, and not too funny. A surprising amount of online comics don't even embed images in their feeds. We've rounded up a list of quality, light, and readable webcomics that will stand the test of time in any developer's feed reader.&lt;/p&gt;
&lt;h3&gt;Utopia Theory&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.utopiatheory.com/" title="Utopia Theory - A Webcomic For The Rest Of Us"&gt; &lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Utopiatheory" height="356" src="http://posterous.com/getfile/files.posterous.com/temp-2010-10-19/wFmmeqtsIkdfpEmfCAlezbfhgzctsoaJCaJtDHxveuCracsJBkJjAhpJrhdc/utopiatheory.jpg.scaled500.jpg" width="479" /&gt;
&lt;/div&gt;
&lt;/a&gt;Our absolute favorite. Utopia Theory's strips are short and sweet, making it a no-lose comic to RSS. The bits often include popular pop culture characters like Spongebob, Ms Pacman, Mr. Potato Head, Aladdin, and Tony the Tiger in unfortunate real life situations. Do yourself a service and nab this Farside-esque feed. Get the RSS &lt;a href="http://www.utopiatheory.com/feed/" title="Utopia Theory RSS Feed"&gt;Here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Abstruse Goose&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://abstrusegoose.com/" title="Abtruse Goose"&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Abtrusegoose" height="128" src="http://posterous.com/getfile/files.posterous.com/temp-2010-10-19/lzcpEJzudJmEaiEIBtdzgqEsnfdlxChIfubirxplgaznkigJtmFAjBhJehDl/abtrusegoose.jpg.scaled500.jpg" width="500" /&gt;
&lt;/div&gt;
&lt;/a&gt;Abtruse Goose is blog any intellectual with a sense of humor will enjoy. Linux, string theory, pi, physics, math, engineering, computers, and other geekery meets every day scenarios. Enjoy this &lt;a href="Abstruse Goose Feed" title="http://abstrusegoose.com/feed"&gt;feed&lt;/a&gt;&amp;nbsp;over your next build or code compilation.&lt;/p&gt;
&lt;h3&gt;Calvin and Hobbes&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.gocomics.com/calvinandhobbes/" title="Calvin and Hobbes"&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Calvinandhobbes" height="159" src="http://posterous.com/getfile/files.posterous.com/temp-2010-10-19/liHkpEGnorpedfnhhJkldlAkwffenkmvCfqgpswemEIIkFhgmuCldflHElcl/calvinandhobbes.jpg.scaled500.jpg" width="500" /&gt;
&lt;/div&gt;
&lt;/a&gt;Aaah the simpler days. Those who remember Calvin and Hobbes might be surprised to find out it's available on the web. Little introduction is needed for the the little boy and his stuffed tiger. Unfortunately, their feed doesn't embed the images. We've got a secret though; the site and their feed is ridden with ads but this &lt;a href="http://galliver.cx/feeds/comics/calvinandhobbes/" title="Calvin and Hobbes Feed"&gt;RSS feed&lt;/a&gt;&amp;nbsp;is sparkling clean.&lt;/p&gt;
&lt;h3&gt;Crimes Against Hugh's Manitees&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://crimesagainsthughsmanatees.tumblr.com/" title="Crimes Against Hugh"&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Crimes_against_hughs_manitees" height="236" src="http://posterous.com/getfile/files.posterous.com/temp-2010-10-19/qndGrmjHjogHalnvhgpylHxhqwtyjnoJBjckvIHumsiopnxJsAAojxIcsJGd/crimes_against_hughs_manitees.jpg.scaled500.jpg" width="500" /&gt;
&lt;/div&gt;
&lt;/a&gt;Crimes Against Hugh's Manitees is an obscure webcomic which features animals with personality disorders. Very light and humorous. Looks like the comics are made by hand with construction paper, a felt tip, and glue. We keep these little guys around for the awkward honesty and clever anthropomorphism. Furry feed &lt;a href="http://crimesagainsthughsmanatees.tumblr.com/rss" title="Crimes Against Hughs Manitees"&gt;Here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Xkcd&lt;/h3&gt;
&lt;p&gt;&lt;a href=" title=" title="&amp;gt;here&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt; &amp;lt;h3&amp;gt;Xkcd&amp;lt;/h3&amp;gt; &amp;lt;p&amp;gt;&amp;lt;a href="&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Grownups" height="165" src="http://posterous.com/getfile/files.posterous.com/temp-2010-10-19/gvwIegkeBnaFDAzCzhGzDHDDDxjuvohuenkkFCwJlolpeHHdBHtGywBhzmoC/grownups.jpg.scaled500.jpg" width="500" /&gt;
&lt;/div&gt;
&lt;/a&gt;What list of comics would be complete without Xkcd. It's minimalistic and brilliant. Sometimes it's on the longer side, we pick and choose. One things for sure, we'd have been reminded about Xkcd if we didn't include it so snag the feed &lt;a href="http://xkcd.com/rss.xml" title="Xkcd Feed"&gt;Here&lt;/a&gt;.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/5-online-comics-every-developer-should-rss"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/5-online-comics-every-developer-should-rss#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=LDiKVR5rFMA:7JBVB3D22zs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=LDiKVR5rFMA:7JBVB3D22zs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=LDiKVR5rFMA:7JBVB3D22zs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=LDiKVR5rFMA:7JBVB3D22zs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=LDiKVR5rFMA:7JBVB3D22zs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=LDiKVR5rFMA:7JBVB3D22zs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/LDiKVR5rFMA" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/286pMqNmz_4" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="236" width="500" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-10-19/qndGrmjHjogHalnvhgpylHxhqwtyjnoJBjckvIHumsiopnxJsAAojxIcsJGd/crimes_against_hughs_manitees.jpg">
        <media:thumbnail height="236" width="500" url="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2010-10-19/qndGrmjHjogHalnvhgpylHxhqwtyjnoJBjckvIHumsiopnxJsAAojxIcsJGd/crimes_against_hughs_manitees.jpg.scaled500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="159" width="500" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-10-19/liHkpEGnorpedfnhhJkldlAkwffenkmvCfqgpswemEIIkFhgmuCldflHElcl/calvinandhobbes.jpg">
        <media:thumbnail height="159" width="500" url="http://getfile9.posterous.com/getfile/files.posterous.com/temp-2010-10-19/liHkpEGnorpedfnhhJkldlAkwffenkmvCfqgpswemEIIkFhgmuCldflHElcl/calvinandhobbes.jpg.scaled500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="356" width="479" url="http://getfile5.posterous.com/getfile/files.posterous.com/temp-2010-10-19/wFmmeqtsIkdfpEmfCAlezbfhgzctsoaJCaJtDHxveuCracsJBkJjAhpJrhdc/utopiatheory.jpg">
        <media:thumbnail height="356" width="479" url="http://getfile6.posterous.com/getfile/files.posterous.com/temp-2010-10-19/wFmmeqtsIkdfpEmfCAlezbfhgzctsoaJCaJtDHxveuCracsJBkJjAhpJrhdc/utopiatheory.jpg.scaled500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="165" width="500" url="http://getfile0.posterous.com/getfile/files.posterous.com/temp-2010-10-19/gvwIegkeBnaFDAzCzhGzDHDDDxjuvohuenkkFCwJlolpeHHdBHtGywBhzmoC/grownups.jpg">
        <media:thumbnail height="165" width="500" url="http://getfile5.posterous.com/getfile/files.posterous.com/temp-2010-10-19/gvwIegkeBnaFDAzCzhGzDHDDDxjuvohuenkkFCwJlolpeHHdBHtGywBhzmoC/grownups.jpg.scaled500.jpg" />
      </media:content>
      <media:content type="image/jpeg" height="128" width="500" url="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2010-10-19/lzcpEJzudJmEaiEIBtdzgqEsnfdlxChIfubirxplgaznkigJtmFAjBhJehDl/abtrusegoose.jpg">
        <media:thumbnail height="128" width="500" url="http://getfile3.posterous.com/getfile/files.posterous.com/temp-2010-10-19/lzcpEJzudJmEaiEIBtdzgqEsnfdlxChIfubirxplgaznkigJtmFAjBhJehDl/abtrusegoose.jpg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://www.developly.com/5-online-comics-every-developer-should-rss</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/LDiKVR5rFMA/5-online-comics-every-developer-should-rss</feedburner:origLink></item>
    <item>
      <pubDate>Fri, 15 Oct 2010 11:46:00 -0700</pubDate>
      <title>Installing Puppet on EC2's Amazon Linux AMI - The No-nonsense Version.</title>
      <link>http://feedproxy.google.com/~r/Developly/~3/XWSRN4d_LmQ/installing-puppet-on-ec2s-amazon-linux-ami</link>
      <guid isPermaLink="false">http://www.developly.com/installing-puppet-on-ec2s-amazon-linux-ami</guid>
      <description>&lt;p&gt;
	&lt;p&gt;&lt;div class='p_embed p_image_embed'&gt;
&lt;img alt="Pupec2" height="117" src="http://posterous.com/getfile/files.posterous.com/temp-2010-10-15/bDgsvfDyfFggphsoIvgvmIeoBdobojgrqjCfgFibnGtyBfiHDklBrrkzenFw/pupec2.jpg.scaled500.jpg" width="450" /&gt;
&lt;/div&gt;
Amazon Web Services only recently released their &lt;a href="http://aws.amazon.com/amazon-linux-ami/"&gt;Amazon Linux AMI&lt;/a&gt;; a stable, secure, rhel-flavored, and performant Linux environment for applications running on EC2. The AMI is free, automatically updated, and EBS or S3 backed. It also comes with Ruby pre-installed. This makes it a killer platform for installing &lt;a href="http://www.puppetlabs.com/puppet/introduction/"&gt;Puppet&lt;/a&gt;, an open source data center automation and configuration management framework. We've pulled together a slimmed down installation guide for those looking for the "just works" version.&lt;/p&gt;
&lt;p&gt;&lt;div class="data type-shell"&gt;
    
      &lt;table class="lines" cellspacing="0" cellpadding="0"&gt;
        &lt;tr&gt;
          &lt;td&gt;
            &lt;pre class="line_numbers"&gt;&lt;span rel="#L1" id="L1"&gt;1&lt;/span&gt;
&lt;span rel="#L2" id="L2"&gt;2&lt;/span&gt;
&lt;span rel="#L3" id="L3"&gt;3&lt;/span&gt;
&lt;span rel="#L4" id="L4"&gt;4&lt;/span&gt;
&lt;span rel="#L5" id="L5"&gt;5&lt;/span&gt;
&lt;span rel="#L6" id="L6"&gt;6&lt;/span&gt;
&lt;span rel="#L7" id="L7"&gt;7&lt;/span&gt;
&lt;span rel="#L8" id="L8"&gt;8&lt;/span&gt;
&lt;span rel="#L9" id="L9"&gt;9&lt;/span&gt;
&lt;span rel="#L10" id="L10"&gt;10&lt;/span&gt;
&lt;span rel="#L11" id="L11"&gt;11&lt;/span&gt;
&lt;span rel="#L12" id="L12"&gt;12&lt;/span&gt;
&lt;span rel="#L13" id="L13"&gt;13&lt;/span&gt;
&lt;span rel="#L14" id="L14"&gt;14&lt;/span&gt;
&lt;/pre&gt;
          &lt;/td&gt;
          &lt;td width="100%"&gt;
            
              
                &lt;div class="highlight"&gt;&lt;pre /&gt;&lt;div class="line" id="LC1"&gt;&lt;span class="c"&gt;# RDEVEL, IRB, RDOC, RUBYGEMS&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC2"&gt;sudo yum install ruby-devel ruby-irb ruby-rdoc rubygems&lt;/div&gt;&lt;div class="line" id="LC3"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC4"&gt;&lt;span class="c"&gt;# FACTER&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC5"&gt;wget http://puppetlabs.com/downloads/facter/facter-latest.tgz&lt;/div&gt;&lt;div class="line" id="LC6"&gt;tar -xf facter-latest.tgz&lt;/div&gt;&lt;div class="line" id="LC7"&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;facter-*&lt;/div&gt;&lt;div class="line" id="LC8"&gt;sudo ruby install.rb&lt;/div&gt;&lt;div class="line" id="LC9"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="line" id="LC10"&gt;&lt;span class="c"&gt;# PUPPET&lt;/span&gt;&lt;/div&gt;&lt;div class="line" id="LC11"&gt;wget http://puppetlabs.com/downloads/puppet/puppet-latest.tgz&lt;/div&gt;&lt;div class="line" id="LC12"&gt;tar -xf puppet-latest.tgz&lt;/div&gt;&lt;div class="line" id="LC13"&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;puppet-*&lt;/div&gt;&lt;div class="line" id="LC14"&gt;sudo ruby install.rb&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
              
            
          &lt;/td&gt;
        &lt;/tr&gt;
      &lt;/table&gt;
    
  &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Once Puppet is installed, you should configure it. We will be releasing a follow up that will significantly slim the work involved soon. But until then, check out PuppetLab's &lt;a href="http://docs.puppetlabs.com/guides/configuring.html"&gt;Configuration Guide&lt;/a&gt;.&lt;/p&gt;
	
&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.developly.com/installing-puppet-on-ec2s-amazon-linux-ami"&gt;Permalink&lt;/a&gt; 

	| &lt;a href="http://www.developly.com/installing-puppet-on-ec2s-amazon-linux-ami#comment"&gt;Leave a comment&amp;nbsp;&amp;nbsp;&amp;raquo;&lt;/a&gt;

&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=M8Yw_n9sT7I:Sh9WygiLlbI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=M8Yw_n9sT7I:Sh9WygiLlbI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=M8Yw_n9sT7I:Sh9WygiLlbI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=M8Yw_n9sT7I:Sh9WygiLlbI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/cd3engineers?a=M8Yw_n9sT7I:Sh9WygiLlbI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/cd3engineers?i=M8Yw_n9sT7I:Sh9WygiLlbI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/cd3engineers/~4/M8Yw_n9sT7I" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/Developly/~4/XWSRN4d_LmQ" height="1" width="1"/&gt;</description>
      <posterous:author>
        <posterous:userImage>http://files.posterous.com/user_profile_pics/1205051/cdLogoSquare.png</posterous:userImage>
        <posterous:profileUrl>http://posterous.com/users/4SnyMxfpGu8p</posterous:profileUrl>
        <posterous:firstName />
        <posterous:lastName />
        <posterous:nickName>ClarionDoor</posterous:nickName>
        <posterous:displayName>ClarionDoor</posterous:displayName>
      </posterous:author>
      <media:content type="image/jpeg" height="117" width="450" url="http://getfile7.posterous.com/getfile/files.posterous.com/temp-2010-10-15/bDgsvfDyfFggphsoIvgvmIeoBdobojgrqjCfgFibnGtyBfiHDklBrrkzenFw/pupec2.jpg">
        <media:thumbnail height="117" width="450" url="http://getfile8.posterous.com/getfile/files.posterous.com/temp-2010-10-15/bDgsvfDyfFggphsoIvgvmIeoBdobojgrqjCfgFibnGtyBfiHDklBrrkzenFw/pupec2.jpg.scaled500.jpg" />
      </media:content>
    <feedburner:origLink>http://www.developly.com/installing-puppet-on-ec2s-amazon-linux-ami</feedburner:origLink><feedburner:origLink>http://feedproxy.google.com/~r/cd3engineers/~3/M8Yw_n9sT7I/installing-puppet-on-ec2s-amazon-linux-ami</feedburner:origLink></item>
  </channel>
</rss>

