<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2986516484600324193</id><updated>2024-12-18T19:18:53.750-08:00</updated><category term="General"/><category term="php"/><category term="datacenter"/><category term="laravel"/><category term="microsoft"/><category term="CSS3"/><category term="HTML5"/><category term="JavaScript"/><category term="News"/><category term="entrepreneurship"/><category term="fun"/><category term="google wave"/><category term="it crowd"/><category term="mit"/><category term="nodejs"/><category term="npm"/><category term="optimization"/><category term="rss"/><category term="windows8"/><title type='text'>Net Code</title><subtitle type='html'>A developer life</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-4022465311599212638</id><published>2017-08-01T02:33:00.000-07:00</published><updated>2017-08-01T02:35:42.542-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="laravel"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><category scheme="http://www.blogger.com/atom/ns#" term="rss"/><title type='text'>Grab &amp; parse RSS feeds using PHP / Laravel</title><content type='html'>Do you ever wanted to grab &amp;amp; parse rss feed using php ? if yes , then you may be familiar with SimplePie.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://www.dtelepathy.com/blog/wp-content/uploads/2010/05/simplepie-graphic.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;200&quot; data-original-width=&quot;600&quot; height=&quot;212&quot; src=&quot;https://www.dtelepathy.com/blog/wp-content/uploads/2010/05/simplepie-graphic.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
SimplePie is an amazing PHP package that help you parse any rss feed , its really incredible and very flexible when it comes to advanced usages.&lt;br /&gt;
In this article i will show you how to make a simple rss parser using php &amp;amp; laravel framework&lt;br /&gt;
let&#39;s jump in&lt;br /&gt;
&lt;br /&gt;
first lets install fresh laravel application&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: &#39;Droid Sans Mono&#39;, &#39;Courier New&#39;, monospace, &#39;Droid Sans Fallback&#39;; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;&quot;&gt;
&lt;pre class=&quot; language-php&quot;&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&lt;code class=&quot; language-php&quot;&gt;composer create&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;project &lt;span class=&quot;token operator&quot;&gt;--&lt;/span&gt;prefer&lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;dist laravel&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;laravel rss&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
next add the&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: &#39;Droid Sans Mono&#39;, &#39;Courier New&#39;, monospace, &#39;Droid Sans Fallback&#39;; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;&quot;willvincent/feeds&quot;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&quot;1.1.*&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
to your composer.json and run composer update to install willvincent/feed package which is laravel package work as a wrapper to simplepie for laravel.&lt;br /&gt;
&lt;br /&gt;
let&#39;s add a new route to our controller GrabController.php&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: &#39;Droid Sans Mono&#39;, &#39;Courier New&#39;, monospace, &#39;Droid Sans Fallback&#39;; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Route&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get(&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;/grab&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;,&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;GrabController@start&#39;); &lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
then in the controller let&#39;s do the magic&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: #1e1e1e; color: #d4d4d4; font-family: &#39;Droid Sans Mono&#39;, &#39;Courier New&#39;, monospace, &#39;Droid Sans Fallback&#39;; font-size: 14px; font-weight: normal; line-height: 19px; white-space: pre;&quot;&gt;
&lt;div&gt;
&lt;span style=&quot;color: #9cdcfe;&quot;&gt;    $feed&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; \&lt;/span&gt;&lt;span style=&quot;color: #4ec9b0;&quot;&gt;Feeds&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;::&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;make(&lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;http://url/path/to/rss&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$feed&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_title(); &lt;/span&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//this will get you the title of the rss&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;&amp;lt;hr /&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$feed&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_permalink(); &lt;/span&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//this will get you the link of the rss&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;&amp;lt;hr /&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$items&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$feed&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_items(); &lt;/span&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//grab all items inside the rss&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$items&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_title(); &lt;/span&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//get the title of single news&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;&amp;lt;br /&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;        echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;permalink&lt;/span&gt;(); &lt;/span&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//get the link of single news&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;&amp;lt;br /&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$enclosure&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_enclosures(); &lt;br /&gt;        &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//retrive the enclosures (extras ex: attached media)&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;foreach&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$enclosure&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$enc&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;){&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt;//print_r($enc);&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #9cdcfe;&quot;&gt;$item&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;get_description();&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #608b4e;&quot;&gt; //get the link of single news&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;color: #dcdcaa;&quot;&gt;echo&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #ce9178;&quot;&gt;&#39;&amp;lt;hr /&amp;gt;&#39;&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: #d4d4d4;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;endforeach&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
so the above code is the most usage methods when you want to parse and rss , if you want futher info see : &lt;a href=&quot;https://github.com/willvincent/feeds&quot;&gt;https://github.com/willvincent/feeds&lt;/a&gt; &amp;amp; &lt;a href=&quot;http://simplepie.org/wiki/&quot;&gt;http://simplepie.org/wiki/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/4022465311599212638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2017/08/grab-parse-rss-feeds-using-php-laravel.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/4022465311599212638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/4022465311599212638'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2017/08/grab-parse-rss-feeds-using-php-laravel.html' title='Grab &amp; parse RSS feeds using PHP / Laravel'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-2189659604617466452</id><published>2017-07-31T11:33:00.000-07:00</published><updated>2017-07-31T11:33:04.157-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="laravel"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'>Add last login date to users in laravel5 </title><content type='html'>&lt;div class=&quot;post_body&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://getfreetutorial.com/wp-content/uploads/2016/07/Laravel-From-Scratch.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;323&quot; data-original-width=&quot;800&quot; height=&quot;258&quot; src=&quot;https://getfreetutorial.com/wp-content/uploads/2016/07/Laravel-From-Scratch.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Lately i wanted to add last login date to 
users to track when they last logged in order to know the active users 
and the inactive users.&lt;br /&gt;
I didn’t find good tutorial on how to do 
that in laravel5 so i decided to do my own tutorial , so prepare your 
self and lets do some coding&lt;br /&gt;
– first step is to modify the user table so lets make a migration for that&lt;br /&gt;
&lt;code&gt;php artisan make:migration add_lastlogin_to_users_table&lt;/code&gt;&lt;br /&gt;
then lets add the column wee need “lastlogin_at“&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class AddExtraFieldsToUsers extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table(&#39;users&#39;, function ($table) {
            $table-&amp;gt;dateTime(&#39;lastlogin_at&#39;);
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table(&#39;users&#39;, function ($table) {
            $table-&amp;gt;dropColumn(&#39;lastlogin_at&#39;);
        });
    }
}
&lt;/code&gt;&lt;/pre&gt;
ok we are good lets run the migration&lt;br /&gt;
&lt;code&gt;php artisan migrate&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
the
 next step is to update that field each time user logged in , there is 
number of ways to do that , you can add event to listen to Auth.login 
and fire your own code but lets make it simple and modify the 
AuthController&lt;br /&gt;
if you look into your AuthController you will find it simple and it inherit most of major functionality from
&lt;code&gt;Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;&lt;/code&gt;&lt;br /&gt;
laravel
 knows that we cannot modify the vendor source code so they provide 
something like callback functions to help us customize the functionality&lt;br /&gt;
one of this function is “authenticated” which called if it exists after the user is authenticated successfully.&lt;br /&gt;
so lets write it in our AuthController&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;  function authenticated(Request $request,User $user){
      $user-&amp;gt;lastlogin_at = date(&#39;Y-m-d H:i:s&#39;);
      $user-&amp;gt;save();
      return redirect()-&amp;gt;intended($this-&amp;gt;redirectPath());
  }
&lt;/code&gt;&lt;/pre&gt;
as you see it take the $request param which is instance of Request and $user which is instance of authenticated User.&lt;br /&gt;
now all set every user logged you can track it&lt;br /&gt;
regards and happy coding&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/2189659604617466452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2017/07/add-last-login-date-to-users-in-laravel5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/2189659604617466452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/2189659604617466452'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2017/07/add-last-login-date-to-users-in-laravel5.html' title='Add last login date to users in laravel5 '/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-3917553009936528458</id><published>2017-07-31T11:31:00.002-07:00</published><updated>2017-07-31T11:31:31.209-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="php"/><title type='text'> Optimizing php from servers to code </title><content type='html'>&lt;div class=&quot;post_body&quot;&gt;
i read recently an awesome answer on 
stackoverflow about how to optimize your php web application from server
 point , web server point and your code&lt;br /&gt;he talked about reversed proxy and advanced caching APC and Memcached &lt;br /&gt;here is the answer&lt;br /&gt;
Here are some points that come to my mind when talking about performance, scalability, PHP, … &lt;br /&gt;&lt;em&gt;I’ve used many of those ideas while working on several projects – and they helped; so they could probably help here too.&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt; First of all, when it comes to performances, there are &lt;strong&gt;many aspects/questions that are to consider&lt;/strong&gt;:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;configuration of the server &lt;em&gt;(both Apache, PHP, MySQL, other possible daemons, and system)&lt;/em&gt;; you might get more help about that on &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fserverfault.com%2F&amp;amp;t=NzY4ZjIyYTVkYzA5MDJjYjAzNWE2NmI1NWZkYTI0M2M4YWM3YjhiNSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;ServerFault&lt;/a&gt;&lt;/strong&gt;, I suppose,&lt;/li&gt;
&lt;li&gt;PHP code,&lt;/li&gt;
&lt;li&gt;Database queries,&lt;/li&gt;
&lt;li&gt;Using or not your webserver?&lt;/li&gt;
&lt;li&gt;Can you use any kind of caching mechanism? Or do you need always more that up to date data on the website?&lt;/li&gt;
&lt;li&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
Using a reverse proxy&lt;/h1&gt;
The first thing that could be really useful is using a &lt;strong&gt;reverse proxy&lt;/strong&gt;, like &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fvarnish.projects.linpro.no%2F&amp;amp;t=OTlhNzU0MmFkMWQ2ZjliM2FkZjRlMjRlYmI4OTZmY2EyZGNjMDI3MSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;varnish&lt;/a&gt;&lt;/strong&gt;, in front of your webserver: let it &lt;strong&gt;cache as many things as possible&lt;/strong&gt;, so only requests that really need PHP/MySQL calculations &lt;em&gt;(and, of course, some other requests, when they are not in the cache of the proxy)&lt;/em&gt; make it to Apache/PHP/MySQL.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;First of all, your CSS/Javascript/Images &lt;em&gt;– well, everything that is static –&lt;/em&gt; probably don’t need to be always served by Apache
&lt;ul&gt;
&lt;li&gt;So, you can have the reverse proxy cache all those.&lt;/li&gt;
&lt;li&gt;Serving
 those static files is no big deal for Apache, but the less it has to 
work for those, the more it will be able to do with PHP.&lt;/li&gt;
&lt;li&gt;Remember: Apache can only server a finite, limited, number of requests at a time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Then, have the reverse proxy serve as many PHP-pages as possible from cache: there are probably &lt;strong&gt;some pages that don’t change that often&lt;/strong&gt;, and could be served from cache. Instead of using some PHP-based cache, why not let another, lighter, server serve those &lt;em&gt;(and fetch them from the PHP server from time to time, so they are always almost up to date)&lt;/em&gt;?
&lt;ul&gt;
&lt;li&gt;For instance, if you have some RSS feeds &lt;em&gt;(We generally tend to forget those, when trying to optimize for performances)&lt;/em&gt; that are requested &lt;strong&gt;very often&lt;/strong&gt;, having them in cache for a couple of minutes could save hundreds/thousands of request to Apache+PHP+MySQL!&lt;/li&gt;
&lt;li&gt;Same for the most visited pages of your site, if they don’t change for at least a couple of minutes &lt;em&gt;(example: homepage?)&lt;/em&gt;, then, no need to waste CPU re-generating them each time a user requests them.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Maybe there is a difference between pages served for anonymous users &lt;em&gt;(the same page for all anonymous users)&lt;/em&gt; and pages served for identified users &lt;em&gt;(“Hello Mr X, you have new messages”, for instance)&lt;/em&gt;?
&lt;ul&gt;
&lt;li&gt;If so, you can probably configure the reverse proxy to cache the page that is served for anonymous users &lt;em&gt;(based on a cookie, like the session cookie, typically)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;It’ll mean that Apache+PHP has less to deal with: only identified users – which might be only a small part of your users.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
About &lt;strong&gt;using a reverse-proxy as cache&lt;/strong&gt;, for a PHP application, you can, for instance, take a look at &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.ilovebonnie.net%2F2009%2F07%2F14%2Fbenchmark-results-show-400-to-700-percent-increase-in-server-capabilities-with-apc-and-squid-cache%2F&amp;amp;t=YzIxZGI2M2YyNjU4ZmY0ODMwNjQ1YjRiOTgwMmFiMmFjNmQ3MjVhNixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Benchmark Results Show 400%-700% Increase In Server Capabilities with APC and Squid Cache&lt;/a&gt;&lt;/strong&gt;. &lt;br /&gt;&lt;em&gt;(Yep,
 they are using Squid, and I was talking about varnish – that’s just 
another possibility ^^ Varnish being more recent, but more dedicated to 
caching)&lt;/em&gt;&lt;br /&gt;
If you do that well enough, and manage to stop 
re-generating too many pages again and again, maybe you won’t even have 
to optimize any of your code ;-) &lt;br /&gt;At least, maybe not in any kind of 
rush… And it’s always better to perform optimizations when you are not 
under too much presure…&lt;br /&gt;
&lt;br /&gt; As a sidenote: you are saying in the OP:&lt;br /&gt;
&lt;blockquote&gt;
A site I built with Kohana was slammed with an enormous amount of traffic yesterday,&lt;/blockquote&gt;
This is the kind of &lt;strong&gt;sudden situation where a reverse-proxy can literally save the day&lt;/strong&gt;, if your website can deal with not being up to date by the second:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;install it, configure it, let it always &lt;em&gt;– every normal day –&lt;/em&gt; run:
&lt;ul&gt;
&lt;li&gt;Configure it to not keep PHP pages in cache; or only for a short duration; this way, you always have up to date data displayed&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;And, the day you take a slashdot or digg effect:
&lt;ul&gt;
&lt;li&gt;Configure the reverse proxy to keep PHP pages in cache; or for a
 longer period of time; maybe your pages will not be up to date by the 
second, but it will allow your website to survive the digg-effect!&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
About that, &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F218264%2Fhow-can-i-detect-and-survive-being-slashdotted&amp;amp;t=ZGYxZmYyMzZkZjE2ZTVkOTllYjIxZmNiOThmY2M0ZWU0NDQzYmNkOCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;How can I detect and survive being “Slashdotted”?&lt;/a&gt;&lt;/strong&gt; might be an interesting read.&lt;br /&gt;
&lt;h1&gt;
On the PHP side of things:&lt;/h1&gt;
First of all: are you using a &lt;strong&gt;recent version of PHP&lt;/strong&gt;? There are regularly improvements in speed, with new versions ;-) &lt;br /&gt;For instance, take a look at &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fsebastian-bergmann.de%2Farchives%2F745-Benchmark-of-PHP-Branches-3.0-through-5.3-CVS.html&amp;amp;t=OGVjZDRhNTgwMDdkYzY2ZmJhMGY4NWFkOWUwNDg0ZjhkZGM5NTJjOCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Benchmark of PHP Branches 3.0 through 5.3-CVS&lt;/a&gt;&lt;/strong&gt;.&lt;br /&gt;
Note that performances is quite a good reason to use PHP 5.3 &lt;em&gt;(&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fblog.pascal-martin.fr%2Fpost%2Fbench-php-5.2-vs-php-5.3-cpu&amp;amp;t=ZjZkMmRmNDY2YjI4NDEyZWU2MjhmYjZjMmRkYzQ5MTI5YTdjYzFiZCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;I’ve made some benchmarks (in french)&lt;/a&gt;, and results are great)&lt;/em&gt;… &lt;br /&gt;&lt;em&gt;Another pretty good reason being, of course, that PHP 5.2 has reached its end of life, and is not maintained anymore!&lt;/em&gt;&lt;br /&gt;
&lt;h2&gt;
Are you using any opcode cache?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;I’m thinking about &lt;strong&gt;APC - Alternative PHP Cache&lt;/strong&gt;, for instance &lt;em&gt;(&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fpecl.php.net%2Fpackage%2FAPC&amp;amp;t=NzIxNDAyYWFlZDRiMDljNmZkMWRmNGFmYWU2ZGJlZjEwNWY5OTU3YyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;pecl&lt;/a&gt;, &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.php.net%2Fapc&amp;amp;t=NzdmNjE0ZjdhYzMyNDY5OGEzZTE4YjI5YTYzYTA0MTMxMWVhZDE0MSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;manual&lt;/a&gt;)&lt;/em&gt;, which is the solution I’ve seen used the most – and that is used on all servers on which I’ve worked.
&lt;ul&gt;
&lt;li&gt;See also: &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.scribd.com%2Fdoc%2F88689%2FApcFacebook&amp;amp;t=ODU2ZTQ5OTNjNmQ3MzFhNTQ2MjJiZWY3YmQ4M2M1ZjY2NTJhODRmNSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Slides APC Facebook&lt;/a&gt;&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;Or &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.ilovebonnie.net%2F2009%2F07%2F14%2Fbenchmark-results-show-400-to-700-percent-increase-in-server-capabilities-with-apc-and-squid-cache%2F&amp;amp;t=YzIxZGI2M2YyNjU4ZmY0ODMwNjQ1YjRiOTgwMmFiMmFjNmQ3MjVhNixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Benchmark Results Show 400%-700% Increase In Server Capabilities with APC and Squid Cache&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;It can really lower the CPU-load of a server a lot, in some cases &lt;em&gt;(I’ve seen CPU-load on some servers go from 80% to 40%, just by installing APC and activating it’s opcode-cache functionality!)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Basically, execution of a PHP script goes in two steps:
&lt;ul&gt;
&lt;li&gt;Compilation of the PHP source-code to opcodes &lt;em&gt;(kind of an equivalent of JAVA’s bytecode)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Execution of those opcodes&lt;/li&gt;
&lt;li&gt;APC
 keeps those in memory, so there is less work to be done each time a PHP
 script/file is executed: only fetch the opcodes from RAM, and execute 
them.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;You might need to take a look at &lt;strong&gt;APC’s &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fphp.net%2Fmanual%2Fen%2Fapc.configuration.php&amp;amp;t=OTUyY2E1NjU3YzI3NGU4ZWVjNjBlMWY1MTg2MTQwYjZlMzZlMmI4OCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;configuration options&lt;/a&gt;&lt;/strong&gt;, btw
&lt;ul&gt;
&lt;li&gt;there are quite a few of those, and some can have a great impact on both speed / CPU-load / ease of use for you&lt;/li&gt;
&lt;li&gt;For instance, disabling &lt;code&gt;[apc.stat](&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fphp.net%2Fmanual%2Fen%2Fapc.configuration.php%23ini.apc.stat&amp;amp;t=OGI0YzRlYWEzZGIwNDk5NzM5MWE4MDJhMjIzMzA0YmFhZTA3NDNiMixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;http://php.net/manual/en/apc.configuration.php#ini.apc.stat&lt;/a&gt;)&lt;/code&gt;
 can be good for system-load; but it means modifications made to PHP 
files won’t be take into account unless you flush the whole 
opcode-cache; about that, for more details, see for instance &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.brandonsavage.net%2Fto-stat-or-not-to-stat%2F&amp;amp;t=MDliYThiYzBhNGE5ZDZiYWZiYzhkNTM2NzFjYmJhMmIwYzYyZmFmYSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;To stat() Or Not To stat()?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Using cache for data&lt;/h2&gt;
As much as possible, it is better to &lt;strong&gt;avoid doing the same thing over and over again&lt;/strong&gt;.&lt;br /&gt;
The
 main thing I’m thinking about is, of course, SQL Queries: many of your 
pages probably do the same queries, and the results of some of those is 
probably almost always the same… Which means lots of &lt;em&gt;“useless”&lt;/em&gt; queries made to the database, which has to spend time serving the same data over and over again. &lt;br /&gt;Of
 course, this is true for other stuff, like Web Services calls, fetching
 information from other websites, heavy calculations, …&lt;br /&gt;
It might be very interesting for you to identify:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Which queries are run lots of times, always returning the same data&lt;/li&gt;
&lt;li&gt;Which other &lt;em&gt;(heavy)&lt;/em&gt; calculations are done lots of time, always returning the same result&lt;/li&gt;
&lt;/ul&gt;
And store these data/results in some kind of cache, so they are easier to get – &lt;em&gt;faster&lt;/em&gt; – and you don’t have to go to your SQL server for “nothing”.&lt;br /&gt;
Great caching mechanisms are, for instance:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;APC&lt;/strong&gt;: in addition to the opcode-cache I talked about earlier, it allows you to store data in memory,&lt;/li&gt;
&lt;li&gt;And/or &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.danga.com%2Fmemcached%2F&amp;amp;t=YzhhYmU5NDNlYTZiODU0MjJkYzA3OTZkZjQ5ZDVjMWU0MTU3NjMzMixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;memcached&lt;/a&gt;&lt;/strong&gt; &lt;em&gt;(&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.php.net%2Fmemcache&amp;amp;t=MzIwNDgxMGQ0MzQ4NDk0ZTliZTIyYjE0MTNkZGJmZjRhMWU0MzU0YSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;see also&lt;/a&gt;)&lt;/em&gt;, which is very useful if you literally have &lt;strong&gt;lots&lt;/strong&gt; of data and/or are &lt;strong&gt;using multiple servers&lt;/strong&gt;, as it is distributed.&lt;/li&gt;
&lt;li&gt;of course, you can think about files; and probably many other ideas.&lt;/li&gt;
&lt;/ul&gt;
I’m pretty sure your framework comes with some cache-related stuff; you probably already know that, as you said &lt;em&gt;“I will be using the Cache-library more in time to come”&lt;/em&gt; in the OP ;-)&lt;br /&gt;
&lt;h2&gt;
Profiling&lt;/h2&gt;
Now, a nice thing to do would be to use the &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fxdebug.org%2F&amp;amp;t=Y2U0MTg2YzhhZTUwOWUxNGQ3NzI0MTE5NGY2OGZkYjk1OWQxNTEyNSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Xdebug&lt;/a&gt;&lt;/strong&gt; extension to &lt;strong&gt;profile your application&lt;/strong&gt;: it often allows to find a couple of weak-spots quite easily – at least, if there is any function that takes lots of time.&lt;br /&gt;
&lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fxdebug.org%2Fdocs%2Fprofiler&amp;amp;t=OTRjMjdiMTVhMGFlYzQxYjIyMzJkNWE4NDNlYzU3ZWU4ZTQ3NTFkNSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Configured properly&lt;/a&gt;&lt;/strong&gt;, it will generate profiling files that can be analysed with some graphic tools, such as:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fkcachegrind.sourceforge.net%2Fhtml%2FHome.html&amp;amp;t=NzQ2NjkyMTBiYjdjMDA2ZTQzNjU1NmY2MWI5NzRhNTVkOTgwNWNlNyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;KCachegrind&lt;/a&gt;&lt;/strong&gt;: my favorite, but works only on Linux/KDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwincachegrind%2F&amp;amp;t=ZWYyYmNkYWFjM2QwMDdjNzZiNmYxMTcyNzY5ZDZiNmY4OTlmMjljNyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Wincachegrind&lt;/a&gt;&lt;/strong&gt; for windows; it does a bit less stuff than KCacheGrind, unfortunately – it doesn’t display callgraphs, typically.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fcode.google.com%2Fp%2Fwebgrind%2F&amp;amp;t=ZWQ2ZTg5NDMyZDczNmI1ZGZmZjk1NTBkYjliZjNmMDQ0YWM3NzFhMyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Webgrind&lt;/a&gt;&lt;/strong&gt; which runs on a PHP webserver, so works anywhere – but probably has less features.&lt;/li&gt;
&lt;/ul&gt;
For instance, here are a couple screenshots of KCacheGrind:&lt;br /&gt;
&lt;div class=&quot;external-image-wrapper&quot; data-loading-text=&quot;Loading...&quot; data-src=&quot;http://extern.pascal-martin.fr/so/kcachegrind/kcachegrind-1-small.png&quot;&gt;
External image&lt;/div&gt;
&lt;div class=&quot;external-image-wrapper&quot; data-loading-text=&quot;Loading...&quot; data-src=&quot;http://extern.pascal-martin.fr/so/kcachegrind/kcachegrind-2-small.png&quot;&gt;
External image&lt;/div&gt;
&lt;em&gt;(BTW,
 the callgraph presented on the second screenshot is typically something
 neither WinCacheGrind nor Webgrind can do, if I remember correctly ^^ )&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;&lt;em&gt;(Thanks @Mikushi for the comment)&lt;/em&gt; Another possibility that I haven’t used much is the the &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fpecl.php.net%2Fpackage%2Fxhprof&amp;amp;t=OWM1Nzg5MWRlNGM0ODRkNTY2OTM3ZGQzOGE1MmJmNDhjNWNjNTM3MSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;xhprof&lt;/a&gt;&lt;/strong&gt;
 extension : it also helps with profiling, can generate callgraphs – but
 is lighter than Xdebug, which mean you should be able to install it on a
 production server.&lt;br /&gt;
You should be able to use it alonside &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=https%3A%2F%2Fgithub.com%2Fpreinheimer%2Fxhprof&amp;amp;t=Y2EwZTliZmNhNDgwNGU2ODA3OGVkNzBmMGZkMjg4NzlkZjlkNmRiMyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;XHGui&lt;/a&gt;&lt;/strong&gt;, which will help for the visualisation of data.&lt;br /&gt;
&lt;h1&gt;
On the SQL side of things:&lt;/h1&gt;
Now that we’ve spoken a bit about PHP, note that it is &lt;strong&gt;more than possible that your bottleneck isn’t the PHP-side of things&lt;/strong&gt;, but the database one…&lt;br /&gt;
At least two or three things, here:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;You should determine:
&lt;ul&gt;
&lt;li&gt;What are the most frequent queries your application is doing&lt;/li&gt;
&lt;li&gt;Whether those are optimized &lt;em&gt;(using the &lt;strong&gt;right indexes&lt;/strong&gt;, mainly?)&lt;/em&gt;, using the &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.0%2Fen%2Fexplain.html&amp;amp;t=NzAyNGUwZDIzZTkzYmVmYzU1N2ZiZjhmYTJjYjZkNWRlMmE2NTA4ZixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;&lt;code&gt;EXPLAIN&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt; instruction, if you are using MySQL
&lt;ul&gt;
&lt;li&gt;See also: &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.1%2Fen%2Fselect-optimization.html&amp;amp;t=ZjhlN2Q0MWIwYTY3NzIxZDBhMjE1NWY0ODFlOGQwYmI2MTFjNTgxMyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Optimizing SELECT and Other Statements&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;You can, for instance, activate &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.1%2Fen%2Fserver-options.html%23option_mysqld_log-slow-queries&amp;amp;t=MmM1YTkzNzk1NjRmMjlhNzEzZDU5MDRkMDg1MTRiNzM0ODY3YzgwNSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;&lt;code&gt;log_slow_queries&lt;/code&gt;&lt;/a&gt; to get a list of the requests that take &lt;em&gt;“too much”&lt;/em&gt; time, and start your optimization by those.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;whether you could cache some of these queries &lt;em&gt;(see what I said earlier)&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Is
 your MySQL well configured? I don’t know much about that, but there are
 some configuration options that might have some impact.
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.1%2Fen%2Foptimizing-the-server.html&amp;amp;t=MDJhZDlmZDAwNzZlNTQ0M2JlNjZmYTgyNTllYjdhZTIyZWE4ZmI0NCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Optimizing the MySQL Server&lt;/a&gt;&lt;/strong&gt; might give you some interesting informations about that.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
Still, the two most important things are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Don’t go to the DB if you don’t need to: &lt;strong&gt;cache as much as you can&lt;/strong&gt;!&lt;/li&gt;
&lt;li&gt;When you have to go to the DB, use efficient queries: use indexes; and profile!&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
And what now?&lt;/h1&gt;
If you are still reading, what else could be optimized?&lt;br /&gt;
Well, there is still room for improvements… A couple of architecture-oriented ideas might be:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Switch to an n-tier architecture:
&lt;ul&gt;
&lt;li&gt;Put MySQL on another server &lt;em&gt;(2-tier: one for PHP; the other for MySQL)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Use several PHP servers &lt;em&gt;(and load-balance the users between those)&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Use another machines for static files, with a lighter webserver, like:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.lighttpd.net%2F&amp;amp;t=MmViYmM4YjVkYmU5ZDNiMmE2ZGQ1ZGFlYzQxYzEwNDAxN2VmMmRlMCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;lighttpd&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;or &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fnginx.org%2F&amp;amp;t=YTEyZDBkNjJlZjlhYWM4Mzk2ZjliOTc4M2IwMzY2ZDg0ZmFmZjBjZixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;nginx&lt;/a&gt; – this one is becoming more and more popular, btw.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use several servers for MySQL, several servers for PHP, and several reverse-proxies in front of those&lt;/li&gt;
&lt;li&gt;Of course: install &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fmemcached.org%2F&amp;amp;t=OTk5NzBjNDBjMTQxODlmN2Y2NjdkNWRmNjkwYzhhNjk3ODc0NTM0YyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;memcached&lt;/a&gt; daemons on whatever server has any amount of free RAM, and use them to cache as much as you can / makes sense.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use something “more efficient” that Apache?
&lt;ul&gt;
&lt;li&gt;I hear more and more often about &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fnginx.net%2F&amp;amp;t=ZmYyYjlmNmQzOWQwNjQ4MTlhNTZjMTc2MjEwNjdhZTAxYzk1MTg4ZCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;nginx&lt;/a&gt;&lt;/strong&gt;,
 which is supposed to be great when it comes to PHP and high-volume 
websites; I’ve never used it myself, but you might find some interesting
 articles about it on the net;
&lt;ul&gt;
&lt;li&gt;for instance, &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Ftill.klampaeckel.de%2Fblog%2Farchives%2F30-PHP-performance-III-Running-nginx.html&amp;amp;t=OTdkZGMyMGNkNGQ2ZTI3OTZjMGE3N2RhMzU4NjkzZDI5NzM5ZjVmMCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;PHP performance III – Running nginx&lt;/a&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;See also: &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fphp-fpm.org%2F&amp;amp;t=MjVlMjNjNTg2YTUxYmE4YjY1NDg1ZmJjYTU0MTZhNDE1ZDkxNDVkMixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;PHP-FPM - FastCGI Process Manager&lt;/a&gt;&lt;/strong&gt;, which is bundled with PHP &amp;gt;= 5.3.3, and does wonders with nginx.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
Well, maybe some of those ideas are a bit overkill in your situation ^^ &lt;br /&gt;But, still… Why not study them a bit, just in case ? ;-)&lt;br /&gt;
&lt;h1&gt;
And what about Kohana?&lt;/h1&gt;
Your initial question was about optimizing an application that uses Kohana… Well, I’ve posted some &lt;strong&gt;ideas that are true for any PHP application&lt;/strong&gt;… Which means they are true for Kohana too ;-) &lt;br /&gt;&lt;em&gt;(Even if not specific to it ^^)&lt;/em&gt;&lt;br /&gt;
I said: use cache; Kohana seems to support some &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fdocs.kohanaphp.com%2Flibraries%2Fcache&amp;amp;t=N2FhZTk2YzU5MWM0MTlkMGUyZTk0ZTJiNjI5Y2M1MDVhNzczMzMzMSxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;caching stuff&lt;/a&gt; &lt;em&gt;(You talked about it yourself, so nothing new here…)&lt;/em&gt; &lt;br /&gt;If there is anything that can be done quickly, try it ;-)&lt;br /&gt;
I also said you shouldn’t do anything that’s not necessary; is there anything enabled by default in Kohana that you don’t need? &lt;br /&gt;Browsing the net, it seems there is at least something about XSS filtering; do you need that?&lt;br /&gt;
Still, here’s a couple of links that might be useful:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fforum.kohanaphp.com%2Fcomments.php%3FDiscussionID%3D133&amp;amp;t=MmQ2MWYzYjUxZTFkOGQzZWQ5MzkyYjFlMGZlYWE2MGI4ZDI4NWZjZixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Kohana General Discussion: Caching?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fforum.kohanaphp.com%2Fcomments.php%3FDiscussionID%3D1435&amp;amp;t=YzU0YWExM2M4ZWUxZTJjZmM5Zjc5NGY5NjQxYjVkODE4MzU5OTczMixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;Community Support: Web Site Optimization: Maximum Website Performance using Kohana&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;
Conclusion?&lt;/h1&gt;
And, to conclude, a simple thought:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;How much will it cost your company to pay you 5 days? &lt;em&gt;– considering it is a reasonable amount of time to do some great optimizations&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;How much will it cost your company to buy &lt;em&gt;(pay for?)&lt;/em&gt; a second server, and its maintenance?&lt;/li&gt;
&lt;li&gt;What if you have to scale larger?
&lt;ul&gt;
&lt;li&gt;How much will it cost to spend 10 days? more? optimizing every possible bit of your application?&lt;/li&gt;
&lt;li&gt;And how much for a couple more servers?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
I’m not saying you shouldn’t optimize: you definitely should! &lt;br /&gt;But &lt;strong&gt;go for “quick” optimizations that will get you big rewards&lt;/strong&gt;
 first: using some opcode cache might help you get between 10 and 50 
percent off your server’s CPU-load… And it takes only a couple of 
minutes to set up ;-) On the other side, spending 3 days for 2 percent…&lt;br /&gt;
Oh, and, btw: before doing anything: &lt;strong&gt;put some monitoring stuff in place&lt;/strong&gt;, so you know what improvements have been made, and how! &lt;br /&gt;Without monitoring, you will have no idea of the effect of what you did… Not even if it’s a real optimization or not!&lt;br /&gt;
For instance, you could use something like &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Foss.oetiker.ch%2Frrdtool%2F&amp;amp;t=NTFiZjkyNWQxNjNmYTA5MzQzMzIxMDUzNmUwNzEyNDhkODc4MmIyMCxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;RRDtool&lt;/a&gt;&lt;/strong&gt; + &lt;strong&gt;&lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fwww.cacti.net%2F&amp;amp;t=MzMwMTg1NGEzYTExMzEzN2Y0ZjJiZjdlMTRhYThmMDZlMTcwOTQ4YyxwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;cacti&lt;/a&gt;&lt;/strong&gt;. &lt;br /&gt;And showing your boss some nice graphics with a 40% CPU-load drop is always great ;-)&lt;br /&gt;
&lt;br /&gt; Anyway, and to really conclude: &lt;strong&gt;have fun!&lt;/strong&gt; &lt;br /&gt;&lt;em&gt;(Yes, optimizing is fun!)&lt;/em&gt; &lt;br /&gt;&lt;em&gt;(Ergh,
 I didn’t think I would write that much… Hope at least some parts of 
this are useful… And I should remember this answer: might be useful some
 other times…)&lt;/em&gt;&lt;br /&gt;
&lt;em&gt;Source: &lt;a href=&quot;http://t.umblr.com/redirect?z=http%3A%2F%2Fstackoverflow.com%2Fquestions%2F1260134%2Foptimizing-kohana-based-websites-for-speed-and-scalability&amp;amp;t=NzZkZmFlYzNkNGVhYTQzNjE5ZmQxMmVhOTQ1MTE4NDJlZDM3NDBhZixwSzZRYlpNOQ%3D%3D&amp;amp;b=t%3AyirQ7hcx_ve0IHX_Pep1sQ&amp;amp;p=https%3A%2F%2Fthenetcoder.tumblr.com%2Fpost%2F67257275423%2Foptimizing-php-from-servers-to-code&amp;amp;m=1&quot;&gt;http://stackoverflow.com/questions/1260134/optimizing-kohana-based-websites-for-speed-and-scalability&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;
            &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/3917553009936528458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2017/07/optimizing-php-from-servers-to-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/3917553009936528458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/3917553009936528458'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2017/07/optimizing-php-from-servers-to-code.html' title=' Optimizing php from servers to code '/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-2940727215323341207</id><published>2017-07-31T11:30:00.004-07:00</published><updated>2017-07-31T11:30:39.275-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nodejs"/><category scheme="http://www.blogger.com/atom/ns#" term="npm"/><title type='text'>NodeJs Prettydate npm module</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://68.media.tumblr.com/632a3b1835964c3d8f232ab50b2feab6/tumblr_inline_mtqechGK4Z1snrl9h.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;195&quot; data-original-width=&quot;500&quot; height=&quot;155&quot; src=&quot;https://68.media.tumblr.com/632a3b1835964c3d8f232ab50b2feab6/tumblr_inline_mtqechGK4Z1snrl9h.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
its my first try to write a nodejs &amp;nbsp;module i hope you like it&lt;br /&gt;it format old JavaScript dates in a “pretty” way. ex : 2 hours ago , 3 minutes ago&lt;br /&gt;

inspired by the John Resig Pretty Date for jQuery (&lt;a href=&quot;http://ejohn.org/blog/javascript-pretty-date/&quot;&gt;http://ejohn.org/blog/javascript-pretty-date/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://npmjs.org/package/pretty-date&quot;&gt;https://npmjs.org/package/pretty-date&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;&lt;a href=&quot;https://github.com/netcode/node-prettydate&quot;&gt;https://github.com/netcode/node-prettydate&lt;/a&gt;&lt;br /&gt;

&lt;h2&gt;
Usage&lt;/h2&gt;
&lt;code&gt;npm install pretty-date&lt;/code&gt;&lt;br /&gt;

&lt;pre&gt;&lt;code&gt;var prettydate = require(&quot;pretty-date&quot;);
console.log(prettydate.format(new Date(&quot;Fri Aug 23 2013 17:30:34 GMT+0200 (EET)&quot;)));&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;
Examples&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;var prettydate = require(&quot;pretty-date&quot;);
console.log(prettydate.format(new Date())); 
console.log(prettydate.format(new Date(&quot;Fri Aug 23 2013 17:30:34 GMT+0200 (EET) &quot;))); 
console.log(prettydate.format(new Date(&quot;Fri Aug 23 2013 16:30:34 GMT+0200 (EET) &quot;))); 
console.log(prettydate.format(new Date(&quot;Fri Aug 23 2013 11:30:34 GMT+0200 (EET) &quot;))); 
console.log(prettydate.format(new Date(&quot;Fri Aug 22 2013 11:30:34 GMT+0200 (EET) &quot;)));
console.log(prettydate.format(new Date(&quot;Fri Aug 21 2013 11:30:34 GMT+0200 (EET) &quot;)));
console.log(prettydate.format(new Date(&quot;Fri Aug 18 2013 11:30:34 GMT+0200 (EET) &quot;)));
console.log(prettydate.format(new Date(&quot;Fri Aug 10 2013 11:30:34 GMT+0200 (EET) &quot;)));
/* outputs
* just now
* 7 minutes  ago
* 1 hour ago
* 6 hours ago 
* Yesterday
* 2 days ago
* 5 days ago
*/&lt;/code&gt;&lt;/pre&gt;
</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/2940727215323341207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2017/07/nodejs-prettydate-npm-module.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/2940727215323341207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/2940727215323341207'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2017/07/nodejs-prettydate-npm-module.html' title='NodeJs Prettydate npm module'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-2394476095322104204</id><published>2012-08-15T14:58:00.001-07:00</published><updated>2012-08-15T14:58:49.302-07:00</updated><title type='text'>back again to blogging :)</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK2_7eStzuHIqlxKx_9CPHPzExfhGv7xHg_UHEKBjxoFplCPv1JBEJHOoCbz26uL8sn1aBxQpeC8UPRJZlP4sSzzo5vyFKDMqQm0UWpHHC33mPw0SVDw3zEoyEWrgj9sTlpjwPhlDt3nA/s1600/images.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK2_7eStzuHIqlxKx_9CPHPzExfhGv7xHg_UHEKBjxoFplCPv1JBEJHOoCbz26uL8sn1aBxQpeC8UPRJZlP4sSzzo5vyFKDMqQm0UWpHHC33mPw0SVDw3zEoyEWrgj9sTlpjwPhlDt3nA/s1600/images.jpeg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
after a while being busy about many things in my life and my work , i am back again to write on the web&lt;br /&gt;
i hope i will post a lot of coding , algorithms , techniques and some about my life as a developer and as an egyptian man :)&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/2394476095322104204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2012/08/back-again-to-blogging.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/2394476095322104204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/2394476095322104204'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2012/08/back-again-to-blogging.html' title='back again to blogging :)'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK2_7eStzuHIqlxKx_9CPHPzExfhGv7xHg_UHEKBjxoFplCPv1JBEJHOoCbz26uL8sn1aBxQpeC8UPRJZlP4sSzzo5vyFKDMqQm0UWpHHC33mPw0SVDw3zEoyEWrgj9sTlpjwPhlDt3nA/s72-c/images.jpeg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-452518561178422382</id><published>2011-12-26T07:05:00.000-08:00</published><updated>2011-12-26T07:05:19.769-08:00</updated><title type='text'>hello web</title><content type='html'>this is my first post in my new blog , i will blog about technology and other things in my mind&lt;br /&gt;
i hope you like it</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/452518561178422382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/12/hello-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/452518561178422382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/452518561178422382'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/12/hello-web.html' title='hello web'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-1436136722557448223</id><published>2011-11-16T11:52:00.000-08:00</published><updated>2011-12-26T07:39:26.746-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CSS3"/><category scheme="http://www.blogger.com/atom/ns#" term="google wave"/><category scheme="http://www.blogger.com/atom/ns#" term="HTML5"/><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript"/><title type='text'>digging into google wave , behind the scene</title><content type='html'>&lt;img class=&quot;alignleft&quot; src=&quot;http://code.google.com/apis/wave/images/wavelogo.png&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;&lt;br/&gt;these days i am trying to improve my skills in html5 and js and other modern technology , and the best way to learn that is to dig into something big , and i was watching Google IO - wave session for the 15 time ;) and decided to simulate some of its actions like real time conversation , online embedding , collaboration editing , drag drop uploading and other cool staff&lt;br/&gt;&lt;br/&gt;watch me for the next posts&lt;br/&gt;&lt;br/&gt;i am coming ;)&lt;br/&gt;&lt;br/&gt;&amp;nbsp;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/1436136722557448223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/11/digging-into-google-wave-behind-scene.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/1436136722557448223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/1436136722557448223'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/11/digging-into-google-wave-behind-scene.html' title='digging into google wave , behind the scene'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-7569919402748213594</id><published>2011-09-20T07:55:00.000-07:00</published><updated>2011-12-26T07:39:26.746-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="entrepreneurship"/><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>كلام في ريادة الأعمال - Entrepreneurship</title><content type='html'>بدون تعقيدات البيزنس , ريادة الأعمال ملخصة في 9 نقاط أساسية&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://www.tech-wd.com/wd/2011/09/15/words-in-entrepreneurship/#more-34359&quot; target=&quot;_blank&quot;&gt;http://www.tech-wd.com/wd/2011/09/15/words-in-entrepreneurship/#more-34359&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/7569919402748213594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/entrepreneurship.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/7569919402748213594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/7569919402748213594'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/entrepreneurship.html' title='كلام في ريادة الأعمال - Entrepreneurship'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-1809968312858261516</id><published>2011-09-19T09:09:00.000-07:00</published><updated>2011-12-26T07:39:26.746-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="General"/><category scheme="http://www.blogger.com/atom/ns#" term="microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="windows8"/><title type='text'>windows 8 simple review + video :)</title><content type='html'>one of my friends told me that windows 8 now release ( developer edition) and it looks awesome , i didnt have enogh time to download and test it but i reviewed some of other tests on it and really looks good and microsoft have done many things that will make windows come back to that game&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/1-580x464.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-32&quot; title=&quot;1-580x464&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/1-580x464-300x240.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;240&quot; /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;features :-&lt;br/&gt;&lt;br/&gt;1- very fast installing and booting&lt;br/&gt;&lt;br/&gt;2- social integration with twitter and facebook&lt;br/&gt;&lt;br/&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;3- new enhancement in view and desktop&lt;br/&gt;&lt;br/&gt;4- supports html5 as native apps&lt;br/&gt;&lt;br/&gt;5- works on both pc&#39;s and netbooks&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;iframe src=&quot;http://www.youtube.com/embed/p92QfWOw88I&quot; frameborder=&quot;0&quot; width=&quot;500&quot; height=&quot;284&quot;&gt;&lt;/iframe&gt;&lt;br/&gt;&amp;nbsp;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/1809968312858261516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/windows-8-simple-review-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/1809968312858261516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/1809968312858261516'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/windows-8-simple-review-video.html' title='windows 8 simple review + video :)'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/p92QfWOw88I/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-119392953954335683</id><published>2011-09-19T03:46:00.000-07:00</published><updated>2011-12-26T07:39:26.747-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><category scheme="http://www.blogger.com/atom/ns#" term="it crowd"/><title type='text'>The IT Crowd - the internet</title><content type='html'>check these episode about the internet i cant stop laughing :D&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;iframe src=&quot;http://www.youtube.com/embed/fYbyj9I1u6U&quot; frameborder=&quot;0&quot; width=&quot;500&quot; height=&quot;284&quot;&gt;&lt;/iframe&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/119392953954335683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/it-crowd-internet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/119392953954335683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/119392953954335683'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/it-crowd-internet.html' title='The IT Crowd - the internet'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/fYbyj9I1u6U/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-6870833318021396837</id><published>2011-09-19T03:19:00.000-07:00</published><updated>2011-12-26T07:39:26.747-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="datacenter"/><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>Bibliotheca Alexandrina datacenter</title><content type='html'>i was in bibalex and photographed the datacenter&lt;br/&gt;&lt;br/&gt;they running servers for library needs and also as a part of archive.org project&lt;br/&gt;&lt;br/&gt;here is the photos&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/bibalex-datacenter.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-21&quot; title=&quot;bibalex-datacenter&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/bibalex-datacenter-240x300.jpg&quot; alt=&quot;&quot; width=&quot;240&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/photo-0049.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-22&quot; title=&quot;photo-0049&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/photo-0049-240x300.jpg&quot; alt=&quot;&quot; width=&quot;240&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/6870833318021396837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/bibliotheca-alexandrina-datacenter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/6870833318021396837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/6870833318021396837'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/bibliotheca-alexandrina-datacenter.html' title='Bibliotheca Alexandrina datacenter'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-6605209259646080944</id><published>2011-09-19T03:14:00.000-07:00</published><updated>2011-12-26T07:39:26.747-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="datacenter"/><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>introduction to datacenters</title><content type='html'>i was searching in the internet for the datacenters in egypt&lt;br/&gt;&lt;br/&gt;i found link.net and tedata.net the biggest data centers in Egypt and there are many small data centers&lt;br/&gt;&lt;br/&gt;i asked my self about  building data center and manage it and i decided to  make some researches about it&lt;br/&gt;&lt;br/&gt;ok lets start&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenter.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-14&quot; title=&quot;datacenter&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenter-227x300.jpg&quot; alt=&quot;&quot; width=&quot;227&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;data center in simple term is a place to house a servers ( servers = computers but with special properties )&lt;br/&gt;&lt;br/&gt;&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;its contain :-&lt;br/&gt;&lt;br/&gt;1- servers in racks&lt;br/&gt;&lt;br/&gt;2- switches and  routers&lt;br/&gt;&lt;br/&gt;3-   Air conditioning equipments&lt;br/&gt;&lt;br/&gt;4 - power equipments ( like UPS )&lt;br/&gt;&lt;br/&gt;5- Network operation center (NOC)&lt;br/&gt;&lt;br/&gt;and we will take every one of the above in more details&lt;br/&gt;&lt;br/&gt;and below some pics of the data centers&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenter-755478.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-15&quot; title=&quot;datacenter-755478&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenter-755478-300x225.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenter.gif&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-16&quot; title=&quot;datacenter&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenter-300x194.gif&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;194&quot; /&gt;&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenterx.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-17&quot; title=&quot;datacenterx&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/datacenterx-300x224.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;224&quot; /&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/6605209259646080944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/introduction-to-datacenters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/6605209259646080944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/6605209259646080944'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/introduction-to-datacenters.html' title='introduction to datacenters'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-1485088615671131560</id><published>2011-09-18T13:00:00.000-07:00</published><updated>2011-12-26T07:39:26.747-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="General"/><category scheme="http://www.blogger.com/atom/ns#" term="mit"/><title type='text'>MIT introduction to computer science and programming</title><content type='html'>hey all , i decided lately that i will try to study the computer science in the academic way so i can improve my skills in programming by the silly but very important  academic  stuff so i begin with MIT introduction cource to computer science its completely free and online via the open cource ware program so have fun with me and wish me luck&lt;br/&gt;&lt;img src=&quot;http://www.coursehero.org/sites/default/files/embed_custom_thumbnails/emvideo-youtube-k6U-i4gXkLM.jpg&quot; alt=&quot;&quot; /&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href=&quot;http://www.coursehero.org/sites/default/files/embed_custom_thumbnails/emvideo-youtube-k6U-i4gXkLM.jpg&quot; target=&quot;_blank&quot;&gt;&lt;br/&gt;http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/1485088615671131560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/mit-introduction-to-computer-science.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/1485088615671131560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/1485088615671131560'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/mit-introduction-to-computer-science.html' title='MIT introduction to computer science and programming'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-3489324518892088113</id><published>2011-09-18T02:07:00.000-07:00</published><updated>2011-12-26T07:39:26.747-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="microsoft"/><category scheme="http://www.blogger.com/atom/ns#" term="News"/><title type='text'>Congratulations to Ali Faramawy the new Corporate Vice President</title><content type='html'>&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/436x328_95508_167099-300x225.jpg&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-7&quot; title=&quot;436x328_95508_167099-300x225&quot; src=&quot;http://netcode.magicwebdev.com/wp-content/uploads/2011/09/436x328_95508_167099-300x225.jpg&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;225&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br/&gt;i have a good news, Ali Faramawy leader of Microsoft in MEA, Promoted to Corporate Vice President Microsoft Corporation&lt;br/&gt;&lt;br/&gt;congratulations Ali and even i am not a big fan of Microsoft but i am really happy and waiting for Microsoft inovation to conquer our region</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/3489324518892088113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/congratulations-to-ali-faramawy-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/3489324518892088113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/3489324518892088113'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/congratulations-to-ali-faramawy-new.html' title='Congratulations to Ali Faramawy the new Corporate Vice President'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2986516484600324193.post-8617956659444018055</id><published>2011-09-18T02:02:00.000-07:00</published><updated>2011-12-26T07:39:26.747-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="General"/><title type='text'>Hello every one</title><content type='html'>hi all ,finally i decided to make my own blog, and getting away from social networks a little bit , but i preferred a theme looks like Facebook to feel like home&lt;br/&gt;&lt;br/&gt;i will write generally about my work , web technology and some personal stuff in both English and Arabic language and may be Spanish as a way to improve my skills in Spanish language&lt;br/&gt;&lt;br/&gt;i hope you like my blog&lt;br/&gt;&lt;br/&gt;so stay tuned :)</content><link rel='replies' type='application/atom+xml' href='http://netcodeme.blogspot.com/feeds/8617956659444018055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://netcodeme.blogspot.com/2011/09/hello-every-one.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/8617956659444018055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2986516484600324193/posts/default/8617956659444018055'/><link rel='alternate' type='text/html' href='http://netcodeme.blogspot.com/2011/09/hello-every-one.html' title='Hello every one'/><author><name>eslam</name><uri>http://www.blogger.com/profile/10667681381852941225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>