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

<channel>
	<title>Emran Hasan&#039;s Blog &#187; General</title>
	<atom:link href="http://phpfour.com/blog/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpfour.com/blog</link>
	<description>The everyday sharing of Emran Hasan on software development.</description>
	<lastBuildDate>Fri, 20 Jan 2012 11:39:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Setting up central Mercurial server in Ubuntu</title>
		<link>http://phpfour.com/blog/2011/05/setting-up-central-mercurial-server-in-ubuntu/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=setting-up-central-mercurial-server-in-ubuntu</link>
		<comments>http://phpfour.com/blog/2011/05/setting-up-central-mercurial-server-in-ubuntu/#comments</comments>
		<pubDate>Sat, 07 May 2011 20:33:32 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[RBS]]></category>
		<category><![CDATA[dev process]]></category>
		<category><![CDATA[dev team]]></category>
		<category><![CDATA[dvcs]]></category>
		<category><![CDATA[mercurial]]></category>

		<guid isPermaLink="false">http://phpfour.com/blog/?p=342</guid>
		<description><![CDATA[It&#8217;s been a while since we&#8217;ve been thinking about moving to Mercurial from Subversion at our company. We were convinced about the benefits of DVCS and chose Mercurial over Git. However, due to pressure at work and some procrastination, the move was delayed a couple times. Finally, today we had the move and the team [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://mercurial.selenic.com/"><img class="alignleft" title="Mercurial" src="http://mercurial.selenic.com/images/mercurial-logo.png" alt="Mercurial" width="184" height="61" /></a></p>
<p>It&#8217;s been a while since we&#8217;ve been thinking about moving to Mercurial from Subversion at our <a href="http://www.rightbrainsolution.com">company</a>. We were convinced about the benefits of DVCS and chose Mercurial over Git. However, due to pressure at work and some procrastination, the move was delayed a couple times. Finally, today we had the move and the team is already up to speed with it.</p>
<p>Although it&#8217;s quite simple to install it in a central server, the different articles on the web had me confused with too many options or with a different distro than Ubuntu. So, here is a dead simple list of things to do for installing Mercurial centrally for your dev team.</p>
<p><span id="more-342"></span><br />
1. Log onto your server using SSH</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">ssh</span> admin<span style="color: #000000; font-weight: bold;">@</span>rbs-server.com</div></div>
<p>2. Install mercurial from repository:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get update</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get install</span> mercurial</div></div>
<p>3. We need to have a directory to store our Mercurial configuration and repository files, so let&#8217;s create one and change it&#8217;s owner to the apache user so that apache can access them:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span><br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> hg<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mkdir</span> hg<span style="color: #000000; font-weight: bold;">/</span>repos<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> www-data:www-data hg<span style="color: #000000; font-weight: bold;">/</span>repos</div></div>
<p>4. We&#8217;ll be creating a configuration that will allow us to host multiple repositories in this server. And we&#8217;ll be using CGI to serve the files through Apache:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>hg<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>doc<span style="color: #000000; font-weight: bold;">/</span>mercurial<span style="color: #000000; font-weight: bold;">/</span>examples<span style="color: #000000; font-weight: bold;">/</span>hgweb.cgi .<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> a+x hgweb.cgi</div></div>
<p>5. We need to show the location of the config file to the CGI script, so open the file <strong>hgweb.cgi</strong> with nano or vim to update the line with &#8220;config = &#8230;&#8221; with the following and save it.</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">config = &quot;/var/hg/hgweb.config&quot;</div></div>
<p>6. Now let&#8217;s create the file <strong>/var/hg/hgweb.config</strong> and write the location of the repositories:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> hgweb.config</div></div>
<p>Enter the following content and save the file:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[collections]<br />
/var/hg/repos = /var/hg/repos</div></div>
<p>7. As a final step, we&#8217;ll need to update the Apache configuration so that it executes the CGI when requested with a <strong>/hg</strong> prefix:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apache2<span style="color: #000000; font-weight: bold;">/</span>sites-available<br />
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> default</div></div>
<p>At the end of the defaul virtual host configuration and just before the &lt;/VirtualHost&gt; tag, add the following and save it:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">ScriptAlias /hg &quot;/var/hg/hgweb.cgi&quot;<br />
<br />
AuthType Basic<br />
AuthName &quot;Mercurial repositories&quot;<br />
AuthUserFile /var/hg/hgusers<br />
Require valid-user</div></div>
<p>8. In order to take effect of the above change, we&#8217;ll need to restart apache:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apache2ctl restart</span></div></div>
<p>9. Now you should be able to visit the server&#8217;s /hg location like <strong>http://rbs-server.com/hg</strong> from browser. However, you&#8217;ll be greeted with a username/password prompt as we&#8217;ve enabled that in our apache configuration above. So, lets add some user for our use.</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>hg<br />
htpasswd <span style="color: #660033;">-mc</span> hgusers admin</div></div>
<p>It will ask for the password of the user admin twice and after you enter that, it will be stored in the file <strong>hgusers</strong>. You can add more users in the similar fashion, just ignore the <strong>c</strong> parameter as it was used to create the file first time:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">htpasswd <span style="color: #660033;">-m</span> hgusers abid<br />
htpasswd <span style="color: #660033;">-m</span> hgusers saeed<br />
...</div></div>
<p>10. Now visit the /hg path in your browser and you&#8217;ll see the empty list of repositories after you authenticate.</p>
<p>11. By default Mercurial only allows pushing changes through SSL, but in our case it was not necessary. Also, we wanted to give all our developers the push access to the repositories. For that, let&#8217;s update the system-wide mercurial configuration file <strong>/etc/mercurial/hgrc</strong> by adding the following lines at the end of the file and saving it:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[web]<br />
allow_push = *<br />
push_ssl = false</div></div>
<p>12. Now that all is set, let&#8217;s setup a test repository so that we can clone it in our development machine:</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>hg<span style="color: #000000; font-weight: bold;">/</span>repos<br />
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #7a0874; font-weight: bold;">test</span><br />
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #7a0874; font-weight: bold;">test</span><br />
hg init</div></div>
<p>This repository can now be accessed through <strong>http://rbs-server.com/hg/test</strong> and can be cloned in a development machine with the following command (mercurial must be installed already):</p>
<div class="codecolorer-container bash blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<br />
hg clone http:<span style="color: #000000; font-weight: bold;">//</span>rbs-server.com<span style="color: #000000; font-weight: bold;">/</span>hg<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">test</span></div></div>
<p>Hope this will make someone&#8217;s life easy. Enjoy the beauty of Mercurial!</p>
<p><a href="http://www.flickr.com/photos/burnblue/109530851/" target="_blank">Photo source</a></p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2011/05/setting-up-central-mercurial-server-in-ubuntu/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>2011</title>
		<link>http://phpfour.com/blog/2011/01/happy-new-year-2011/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=happy-new-year-2011</link>
		<comments>http://phpfour.com/blog/2011/01/happy-new-year-2011/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 12:29:25 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[new year]]></category>

		<guid isPermaLink="false">http://localhost/phpfour/wordpress/?p=317</guid>
		<description><![CDATA[First, a very happy new year to everybody!!! The last year has showed me the ups and downs of life and I believe 2011 will be a great year. Some of my wishes in 2011 would be: Re-shaping my company to become a major OSS based company in Bangladesh Doing something meaningful for my country [...]]]></description>
			<content:encoded><![CDATA[<p>First, a very happy new year to everybody!!! The last year has showed me the ups and downs of life and I believe 2011 will be a great year. Some of my wishes in 2011 would be:</p>
<ul>
<li>Re-shaping my company to become a major OSS based company in Bangladesh</li>
<li>Doing something meaningful for my country</li>
<li>Learning Ruby and related frameworks (Rails, Cucumber, etc)</li>
<li>Spending more time my family</li>
<li>Having more fun with my friends</li>
<li>Living a healthy life</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2011/01/happy-new-year-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using Twitter for sending server downtime alert</title>
		<link>http://phpfour.com/blog/2009/03/php-twitter-server-monitoring-curl-tips-rest-api/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=php-twitter-server-monitoring-curl-tips-rest-api</link>
		<comments>http://phpfour.com/blog/2009/03/php-twitter-server-monitoring-curl-tips-rest-api/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 16:53:22 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[quick]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=238</guid>
		<description><![CDATA[Today I&#8217;ve written this simple PHP script to alert me through Twitter whenever our company&#8217;s local server is down. The script is called by a cron every 5 mins in my central hosting. Without much babble, here goes the code (if you&#8217;re interested to know why I needed this, that&#8217;s at the bottom of the [...]]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;ve written this simple PHP script to alert me through <a href="http://twitter.com">Twitter</a> whenever our company&#8217;s local server is down. The script is called by a cron every 5 mins in my central hosting. Without much babble, here goes the code (if you&#8217;re interested to know why I needed this, that&#8217;s at the bottom of the post):</p>
<p>[sourcecode language='php']<br />
<?php</p>
<p>// Specify the target URL in your server<br />
$targetUrl  = 'http://YOUR_SERVER_URL';</p>
<p>// Specify what the response is from the server<br />
$targetText = 'Hello from Daredevil';</p>
<p>// We will be using cURL for fetching the content<br />
$ch = curl_init();</p>
<p>// Set the params<br />
curl_setopt($ch, CURLOPT_URL, $targetUrl);<br />
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);</p>
<p>// Get the response<br />
$response = curl_exec($ch);<br />
curl_close($ch);</p>
<p>// Are things in right place ?<br />
if ($response == $targetText) {<br />
    die('Site is up and running!');<br />
}</p>
<p>// Nope, so here are the sender's twitter info<br />
$username = 'SENDER_TWITTER_USERNAME';<br />
$password = 'SENDER_TWITTER_PASSWORD';</p>
<p>// Receiver's twitter username<br />
$receiver = 'RECEIVER_TWITTER_USERNAME';</p>
<p>// Alert message to send<br />
$message = 'Daredevil is not responding, please fix ASAP!';</p>
<p>// The Twitter API address (new direct message)<br />
$url = 'http://twitter.com/direct_messages/new.json';</p>
<p>// We will be using cURL for this<br />
$ch = curl_init();</p>
<p>// Set the params<br />
curl_setopt($ch, CURLOPT_URL, "$url");<br />
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);<br />
curl_setopt($ch, CURLOPT_POST, 1);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS, "user=$receiver&amp;text=$message");<br />
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");</p>
<p>// Send the request<br />
$response = curl_exec($ch);<br />
curl_close($ch);</p>
<p>// Success or failure<br />
if (!empty($response)) {<br />
    echo 'Recipient has been notified.';<br />
} else {<br />
    echo 'No response from twitter.';<br />
}</p>
<p>[/sourcecode]</p>
<p><strong>Why I needed this?</strong></p>
<p>Recently we have setup a server at our office for committing work to a local SVN repository and have the QA test our work whenever they are ready. We also have a staging server where we do SVN update from this repo. Now, for the last few days, I&#8217;ve found the local server to be off due to a few reasons &#8211; but every time I realized this at night when I am back home and can&#8217;t do anything to turn it on. So I thought about this Twitter alert which is sent to my cell phone immediately when the server goes offline.</p>
<p>Btw, if Twitter doesn&#8217;t send SMS to your country, don&#8217;t worry. Check out the excellent service at <a href="http://twe2.com/">Twe2</a> that I&#8217;ve been using for a couple days.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2009/03/php-twitter-server-monitoring-curl-tips-rest-api/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>A Workshop on &#8220;Freelancing IT Jobs – How to Make Yourself Ready&#8221;</title>
		<link>http://phpfour.com/blog/2009/03/a-workshop-on-freelancing-it-jobs-how-to-make-yourself-ready/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-workshop-on-freelancing-it-jobs-how-to-make-yourself-ready</link>
		<comments>http://phpfour.com/blog/2009/03/a-workshop-on-freelancing-it-jobs-how-to-make-yourself-ready/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 10:48:14 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Talks]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[freelancing]]></category>
		<category><![CDATA[Workshop]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=225</guid>
		<description><![CDATA[Today I facilitated this workshop on Freelancing, organized by BDjobs.com. The primary focus of the workshop was to introduce the concept of freelancing to the attendee&#8217;s as well as to provide them with a general hands-on path on how to start freelancing. The total workshop covered a variety of sections starting from freelancing overview, freelance [...]]]></description>
			<content:encoded><![CDATA[<p>Today I facilitated this workshop on Freelancing, organized by <a href="http://training.bdjobs-server.com/">BDjobs.com</a>. The primary focus of the workshop was to introduce the concept of freelancing to the attendee&#8217;s as well as to provide them with a general hands-on path on how to start freelancing. The total workshop covered a variety of sections starting from freelancing overview, freelance site reviews, tips on building a professional profile, the bidding process, tips on successful bidding, client management techniques, payment pitfalls, payment methods, etc.</p>
<blockquote class="left"><p>You can download the presentation file here in two formats: <a title="Freelancing IT Jobs" href="http://www.phpfour.com/blog/downloads/FreelancingPDF">PDF</a> and <a title="Freelancing IT Jobs" href="http://www.phpfour.com/blog/downloads/FreelancingPPT">Powerpoint</a>.</p></blockquote>
<p>The full workshop description is provided below. If you&#8217;re interested in attending the next workshop on April, get in touch with <a href="http://training.bdjobs-server.com/">BDjobs.com</a>.</p>
<p><span id="more-225"></span></p>
<blockquote>
<p style="text-align: center;"><strong>Freelancing IT Jobs &#8211; How to Make Yourself Ready</strong></p>
<p>A freelancer is a person who pursues a profession without a long-term commitment to any particular employer. A freelancer provides some sort of service whether it is design, programming, content writing or almost any other occupation. The main difference is that a freelancer has many clients rather than one steady employer. Freelancers often charge by the hour, the day or the project and are effectively running a small business with their skill set as the star product.</p>
<p>Although you might be thinking that freelancing is simply a different kind of job, in fact it is running your own business. When you are a freelancer, you are a one-person business. At some point you might even expand to a larger operation by hiring staff. Or you could remain a freelancer permanently.</p>
<p>So, if you&#8217;re looking for the next major break in your career OR you&#8217;re a fresh graduate who wants to make a living OR you want to check what the thing freelancing is, this workshop will help you out.</p>
<p><span style="text-decoration: underline;">Contents of Training:</span></p>
<p><strong>Session One: Introduction to IT Freelancing</strong></p>
<p>1. Introduction</p>
<ul>
<li>What is freelancing?</li>
<li>Benefits of freelancing</li>
<li>Type of freelancing scope</li>
<li>Type of freelancing jobs</li>
</ul>
<p>2. The Basics</p>
<ul>
<li>Things you need to start freelancing</li>
<li>Popular freelancing websites</li>
<li>Early success factors</li>
<li>Preparing yourself</li>
</ul>
<p><strong>Session two: Successful Freelancing</strong></p>
<p>1. Getting Projects</p>
<ul>
<li>Signing up in freelancing sites</li>
<li>Building a good profile</li>
<li>Successful bidding</li>
<li>Project scope &amp; Timing</li>
<li>Project budget</li>
</ul>
<p>2. Working with Project</p>
<ul>
<li>Milestones and deadlines</li>
<li>Communication</li>
<li>Track progress</li>
</ul>
<p>3. Working with Clients</p>
<ul>
<li>Essential client skills</li>
<li>Professional Relationship</li>
<li>How to keep client happy</li>
</ul>
<p><strong>Session three: Payments and Others</strong></p>
<p>1. Getting Paid</p>
<ul>
<li>Status reports</li>
<li>Invoices</li>
<li>Payment methods</li>
<li>How to avoid payment pitfalls</li>
</ul>
<p>2. Questions &amp; Answers</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2009/03/a-workshop-on-freelancing-it-jobs-how-to-make-yourself-ready/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Seven Things</title>
		<link>http://phpfour.com/blog/2009/02/seven-things/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=seven-things</link>
		<comments>http://phpfour.com/blog/2009/02/seven-things/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 21:16:16 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[life]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[seven]]></category>
		<category><![CDATA[strange]]></category>
		<category><![CDATA[things]]></category>
		<category><![CDATA[weird]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=204</guid>
		<description><![CDATA[Well, this seven unknown things internet meme has been circulating in the web for a while and I am joining after seeing this in a few blogs I follow. However, haven&#8217;t seen this in my blogger network from Bangladesh so hope it will make a few laughs. So here goes seven random (weird) things about [...]]]></description>
			<content:encoded><![CDATA[<p>Well, this <a href="http://shiflett.org/blog/2009/jan/seven-things">seven</a> <a href="http://elizabethmariesmith.com/2009/01/seven-weird-things/">unknown</a> <a href="http://naramore.net/blog/seven-things">things</a> internet meme has been circulating in the web for a while and I am joining after seeing this in a few blogs I follow. However, haven&#8217;t seen this in my blogger network from Bangladesh so hope it will make a few laughs.</p>
<p>So here goes seven random (weird) things about me:</p>
<p>1. The veins in my left eyes are dried up, so I practically use my right eye for everything&#8230;pirate king!</p>
<p>2. The real break in my programming life came when I went to a programming contest with a team and was declined to participate. We had our rights and they later let us in, but gave us a almost broken PC. We cracked three out of 5 problems straight in DOS edit as the compiler would hardly run <img src='http://phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>3. I do not watch TV programs for the last 5 years. DVDs and downloaded movies/TV series are the only source of entertainment. My most fav TV series is <a href="http://en.wikipedia.org/wiki/X-Files">The X Files</a>.</p>
<p>4. When I was a kid, I was damn fond of toys. I had a whole collection of figures from HE-MAN, J.I.JOE, Thundercats, Transformers, and a few others.</p>
<p>5. I was present only in <strong>48% classes</strong> in my second year in college, whereas the rule of thumb was a minimum of <strong>85%</strong>. After the test exams, I was given a punishment of attending to library from 8am to 5pm for 26 days where the only thing allowed is study (textbook only). No friends, no gossip, no newspaper.</p>
<p>However, I convinced my father that this punishment was imposed to me as one teacher did not like my attitude in his class; i made my father to the principal with an application where its mentioned that I cannot attend this due to medical condition. Principal had to agree and I only had to do it for 2hrs for the sake of records <img src='http://phpfour.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>6. The first program I wrote for money was a file copying &#038; renaming program in VB6 for $20. It would transfer some old mail server (don&#8217;t rem the name) files from an old server to a new one and would rename their extension to match Microsoft Exchange. Exchange was smart enough to read &#038; convert automatically, so it looked as if the program did the conversion. Heh heh.</p>
<p>The fun part is, later another company was somehow convinced that it&#8217;s a huge work and went into a partnership with me where I received a down payment of $1500 and a 30% profit sharing with the same application plus a few UI improvement. Not bad <img src='http://phpfour.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>7. I never studied Computer Science nor did any programming classes. I have been in business studies concentration since school and did my bachelors in Business Administration (BBA). Currently I&#8217;m pursuing my masters in Business Administration (MBA) as well.</p>
<p>Here are the seven people I&#8217;m tagging:</p>
<p>1. <a href="http://hasin.wordpress.com">Hasin Hayder</a><br />
2. <a href="http://ajaxray.com">Anis Uddin Ahmad</a><br />
3. <a href="http://hasan.we4tech.com">NHM Tanveer Hossain Khan</a><br />
4. <a href="http://omi.net.bd">Omi Azad</a><br />
5. <a href="http://www.trivuz.com">Trivuz</a><br />
6. <a href="http://www.fanphp.com/">M.M.H Masud</a><br />
7. <a href="http://www.suhreedsarkar.com/">Suhreed Sarkar</a></p>
<p>And here goes the rules:</p>
<p>- Link your original tagger(s), and list these rules on your blog.<br />
- Share seven facts about yourself in the post &#8211; some random, some weird.<br />
- Tag seven people at the end of your post by leaving their names and the links to their blogs.<br />
- Let them know they&#8217;ve been tagged by leaving a comment on their blogs and/or Twitter.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2009/02/seven-things/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Code Updates (HTTP class, Extended CodeIgniter Model, Cross-domain AJAX transport)</title>
		<link>http://phpfour.com/blog/2009/02/updated-http-class-extended-model-codeigniter-cross-domain-ajax-php/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=updated-http-class-extended-model-codeigniter-cross-domain-ajax-php</link>
		<comments>http://phpfour.com/blog/2009/02/updated-http-class-extended-model-codeigniter-cross-domain-ajax-php/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 21:27:47 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[Code Igniter]]></category>
		<category><![CDATA[cross-domain]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=186</guid>
		<description><![CDATA[Greetings to all the readers of my blog. Many of you have been writing to me in the last couple days when I took the site down. The main objective was to add the new theme and push a few code updates of the existing libraries. I really appreciate your concern and would like to [...]]]></description>
			<content:encoded><![CDATA[<p>Greetings to all the readers of my blog.</p>
<p>Many of you have been writing to me in the last couple days when I took the site down. The main objective was to add the new theme and push a few code updates of the existing libraries. I really appreciate your concern and would like to reassure you that the site is up and will be up as usual <img src='http://phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Now, besides the slightly customized theme from Elegant Themes, I have put a few code updates. They are detailed below:</p>
<h3>Extended Model for CodeIgniter</h3>
<p>The <a href="http://www.phpfour.com/blog/2008/07/extended-model-for-codeigniter/">original version</a> of the Extended Model for CodeIgniter has been serving many people well. Although most users loved the nifty functions of the Model, many (including me) didn&#8217;t like the hacking of CI core to get this functionality. With the release of CodeIgniter 1.7, we can avoid that as we can now overload the Model class of CI like the other libraries. Follow this instruction:</p>
<p>1. Download the updated version from <a href="http://www.phpfour.com/blog/downloads/model-ci-2">here</a><br />
2. Put it in your application/libraries folder<br />
3. In your model files, use it this way: <strong>class Product extends MY_Model</strong><br />
4. Everything else is same just like the <a href="http://www.phpfour.com/blog/2008/07/extended-model-for-codeigniter/">original</a> one</p>
<h3>HTTP Class</h3>
<p>There is not much update in this class except for a few bug fixes (thanks to you guys). Also, I have included a license file in the package as many of you have asked. It&#8217;s released under the MIT license. The original post is <a href="http://www.phpfour.com/blog/2008/01/php-http-class/">here</a> for reference.</p>
<p>Download the update from <a href="http://www.phpfour.com/blog/downloads/http-class">here</a> and the API reference is <a href="http://www.phpfour.com/lib/http">here</a>.</p>
<h3>Cross-domain AJAX calls using PHP</h3>
<p>A minor bug fix in the code. Thanks to a few of you who pointed them out. Original post is <a href="http://www.phpfour.com/blog/2008/03/cross-domain-ajax-using-php/">here</a>. Download the update from <a href="http://www.phpfour.com/blog/downloads/transport">here</a>.</p>
<p>I have accelerated plans for the blog in 2009 so stay tuned for some worthy posts in this month. And do <a href="http://www.phpfour.com/blog/contact-me/">write to me</a> if you feel you have any questions/ideas/suggestions.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2009/02/updated-http-class-extended-model-codeigniter-cross-domain-ajax-php/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Nokia N81 8GB</title>
		<link>http://phpfour.com/blog/2008/12/nokia-n81-8gb-mobile-phone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nokia-n81-8gb-mobile-phone</link>
		<comments>http://phpfour.com/blog/2008/12/nokia-n81-8gb-mobile-phone/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 19:39:54 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[exciting]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[n81]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[nseries]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=178</guid>
		<description><![CDATA[Today I bought a Nokia N81 8GB smartphone from my friend Nesar. This is an upgrade from my previous Nokia 6300, which I&#8217;ve been using for 1.5 year (thats the longest time I&#8217;ve used one model). The Nseries of Nokia has been attracting a lot of people lately, with their great music and photo capture [...]]]></description>
			<content:encoded><![CDATA[<p>Today I bought a <strong>Nokia N81 8GB</strong> smartphone from my friend Nesar. This is an upgrade from my previous <a title="Nokia 6300" href="http://www.phpfour.com/blog/2007/08/11/nokia-6300/" target="_blank">Nokia 6300</a>, which I&#8217;ve been using for 1.5 year (thats the longest time I&#8217;ve used one model). The <em>Nseries</em> of Nokia has been attracting a lot of people lately, with their great music and photo capture features. One of my colleagues, <a href="http://www.ajaxray.com">Anis</a>, also bought <a title="Anis N73 photos" href="http://www.flickr.com/photos/anis_niit" target="_blank">N73</a> just two months back.</p>
<p style="text-align: center;"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/12/nokia-n81.jpg"><img class="aligncenter size-full wp-image-179" title="Nokia N81 8GB" src="http://www.phpfour.com/blog/wp-content/uploads/2008/12/nokia-n81.jpg" alt="Nokia N81 8GB" width="536" height="456" /></a><br /><strong>Nokia N81 8GB</strong></p>
<p>Now, good points first. The N81boosts an extremely loud set of sterio speakers &#8211; combined with its Music Express, it delivers the highest quality of music I&#8217;ve ever purchased. Combined with the built-in FM radion, the dedicated music keys, and a multimedia menu &#8211; this is a <strong>music powerhouse</strong>, thanks to the all new Symbian 9.3 OS.</p>
<p>The Symbian OS is superb with all the applications and now has some stunning gameplay capabilities. The phone also has all kind of connectivity point you might need &#8211; GPRS, EDGE, Wifi, Bluetooth, WLAN, 3G. And don&#8217;t forget the built-in 8GB memory.</p>
<p>The only downside of this phone is the camera. It&#8217;s a 2 megapixel camera &#8211; which I don&#8217;t have any clue how got into a Nseries phone. If there is not enough light, the pictures are somewhat blurry. It has flash and a number of picture modes, so its a decent one &#8211; but nowhere in comparison with other Nseries 3.2mp and 5mp cameras.</p>
<p>All in all, here are the facts:</p>
<ul>
<li>2.4” QVGA main color display (320 x 240 pixels), up to 16.7 million colors</li>
<li>S60 3rd Edition Feature Pack 1 based on Symbian OS v9.2</li>
<li>Dedicated media keys for quick and easy access to music and video</li>
<li>WLAN IEEE802.11 b/g with UPnP (Universal Plug and Play) support</li>
<li>Bluetooth Specification 2.0 (profiles supported: DUN, OPP, FTP, HFP, GOEP, GAP, SPP, HSP, BIP, A2DP)</li>
<li>Micro USB 2.0 Full Speed (mass storage class)</li>
<li>Nokia AV Connector 3.5mm</li>
<li>Up to 2 megapixel (1600&#215;1200 pixels) camera, MPEG-4 VGA video capture of up to 15fps</li>
<li>Zoom: digital up to 20x</li>
<li>Front camera (CIF)</li>
<li>Video call and video sharing support (WCDMA network services)</li>
<li>Integrated flash (modes: on, off, automatic, redeye reduction)</li>
<li>Rotating gallery with Navi wheel support</li>
<li>Nokia Nseries digital music player supports MP3 (VBR), AAC, eAAC+, AAC+, WMA/M4A, WAV</li>
<li>OMA DRM 1.x, 2.0, Windows Media DRM (OTI/OTA with Nokia Music Store*)</li>
<li>Synchronize music with Windows Media Player 11</li>
<li>Media keys (play/pause, stop, forward, rewind)</li>
<li>Stereo FM radio (87.5-108MHz /76-90MHz)</li>
</ul>
<p>Let&#8217;s see how long it can serve my ever-growing thirst of technology <img src='http://phpfour.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2008/12/nokia-n81-8gb-mobile-phone/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Increase productivity with Todoist</title>
		<link>http://phpfour.com/blog/2008/09/increase-productivity-with-todoist/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=increase-productivity-with-todoist</link>
		<comments>http://phpfour.com/blog/2008/09/increase-productivity-with-todoist/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 15:56:21 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[efficiency]]></category>
		<category><![CDATA[essentials]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[solution]]></category>
		<category><![CDATA[to do]]></category>
		<category><![CDATA[web 2.0]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=125</guid>
		<description><![CDATA[If you&#8217;re like me, you&#8217;d want to keep your ever busy life a bit organized. Being a techie, you&#8217;d first find a tool that will facilitate you in doing so. Most of us are fan of a number of such tools: RememberTheMilk, BackPack, Ta-Da List, 30boxes, Microsoft OneNote, Stickies etc. I&#8217;ve also tried all of [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re like me, you&#8217;d want to keep your ever busy life a bit organized. Being a techie, you&#8217;d first find a  tool that will facilitate you in doing so. Most of us are fan of a number of such tools: <a href="http://www.rememberthemilk.com/">RememberTheMilk</a>, <a href="http://www.backpackit.com">BackPack</a>, <a href="http://www.tadalist.com/">Ta-Da List</a>, <a href="http://www.30boxes.com/">30boxes</a>, <a href="http://office.microsoft.com/en-us/onenote/default.aspx">Microsoft OneNote</a>, <a href="http://www.zhornsoftware.co.uk/stickies/">Stickies </a>etc. I&#8217;ve also tried all of them and a few others, stuck with them for a few days, but later lost the interest. This happened until one of colleagues, <a href="http://www.ajaxray.com/">Anis</a>, suggested me to have a look on <strong><a href="http://todoist.com">Todoist</a></strong>.</p>
<p>At first sight, I thought it as <em>&#8220;okay&#8230;another web 2.0 brainchild&#8221;</em>. It seemed too simple to handle my complicated needs and I did not have high ambition with it. But as days passed, I was discovering new new features of it and gradually it became a part of my life. I&#8217;m a big fan of <a href="http://www.amazon.com/exec/obidos/ASIN/0142000280/lowendmac00-20">Getting Things Done (GTD)</a> approach and Todoist became my dropbox for all the tasks in my mind.</p>
<p>If you ask me what&#8217;s so special about Todoist, I&#8217;d mention the following few features:</p>
<h3>Simplicity</h3>
<p>Todoist is damn simple and hosts one of the most powerful yet sleek web 2.0 interface on the web. It allows you to have an unlimited nested category/project list and under each of them, unlimited nested task list. This is something that most other tools miss. For me, it&#8217;s a super MUST feature.</p>
<p align="center"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_main.jpg"><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_main.jpg" alt="" title="Todoist Main" width="620" height="312" class="aligncenter size-full wp-image-126" /></a></p>
<p><span id="more-125"></span></p>
<h3>Shortcuts</h3>
<p>I was never fond of using shortcuts in web apps, but Todoist has made me use it&#8217;s ones. With very simple and familiar shortcuts, you can easily perform the most used tasks in a flash. For example, you press <strong>a</strong> to add a new task, <strong>Ctrl+Left / Ctrl+Right</strong> to indent/outdent your task, <strong>Ctrl+Enter</strong> to save the current item and add a new one below, etc etc. When you get used to with them, you&#8217;ll find that you&#8217;re using them unconsciously.</p>
<p align="center"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_shortcuts.jpg"><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_shortcuts.jpg" alt="" title="Todoist Shortcuts" width="500" height="312" class="aligncenter size-full wp-image-129" /></a></p>
<h3>Powerful Date</h3>
<p>Todoist features one of the most powerful date input system. It understands any natural date entry you can have: <strong>today, friday, next tuesday, tomorrow @ 5pm, last friday</strong>, etc. And it&#8217;s not limited to that only, you can add recurring dates in as simple way: <strong>ev day @1pm, every fri, every 2nd mon</strong>, etc.</p>
<p align="center"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_dates.jpg"><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_dates.jpg" alt="" title="Todoist Dates" width="500" height="333" class="aligncenter size-full wp-image-130" /></a> </p>
<h3>Task Query</h3>
<p>So, you&#8217;ve added a bunch of tasks and now want to find out a small set of them. How do you do that? Simple, type the query in the Todoist query box at top left. Example: <strong>tod, tom, next 4 days, overdue, @meeting</strong>, etc. Btw, Todoist allows you to tag your tasks with a very simple manner. Just put a &#8220;@tag&#8221; in your task details and it will become a tag. You can later query using that tag as well.</p>
<p align="center"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_query.jpg"><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_query.jpg" alt="" title="Todoist Query" width="223" height="153" class="aligncenter size-full wp-image-131" /></a></p>
<h3>Reminders</h3>
<p>Like all other similar applications, Todoist also features a number of reminder methods. You can plug in your jabber client, ask it to send you sms, or fire an email. Moreover, if you&#8217;re one of those twitter fans, then it can send msg to your twitter also. What more can someone need?</p>
<p align="center"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_reminders.jpg"><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_reminders.jpg" alt="" title="Todoist Reminders" width="445" height="236" class="aligncenter size-full wp-image-132" /></a></p>
<h3>API</h3>
<p>Yes, I knew you&#8217;d ask about it. Todoist has a very simple yet powerful set of API functions that you can use to fetch the contents from your account. They return the data in JSON format so you can use it in your JavaScript based applications and also can use in any back-end applications as well by converting them as per your need. And it has a number of different plugins for <a href="http://todoist.com/Help/viewQuickSilver">QuickSilver</a>, <a href="http://todoist.com/Help/viewLaunchy">Launchy</a>, <a href="http://todoist.com/Help/viewDashboard">Mac Dashboard</a>, <a href="http://todoist.com/Help/viewWidget">iGoogle, Netvibes</a>, etc. And lastly, there is a <a href="http://todoist.com/Help/viewSidebar">Firefox sidebar</a> which integrates seamlessly into your firefox for a faster and smarter access to your tasks.</p>
<p align="center"><a href="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_api.jpg"><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/09/todoist_api.jpg" alt="" title="Todoist API" width="500" height="244" class="aligncenter size-full wp-image-133" /></a></p>
<h3>Some missing functionality</h3>
<p>Although Todoist boosts an array of excellent features and satisfies all my needs in full, I&#8217;d love to have a few more features in it: <strong>Offline access (using Google Gear)</strong>, <strong>Export/Import of tasks</strong>, <strong>iCal/RSS</strong>, <strong>Google Calendar Integration</strong> etc. The best part is, they&#8217;ve opened a place to hear from the users and are willing to value the <a href="http://todoist.uservoice.com/">user&#8217;s voice</a>.</p>
<p>All in all, Todoist is my most favorite tool on the web at this moment. It helps me like a little buddy and keeps my life organized and clean. I&#8217;d ask you to give it a try and stick with it for a couple days and I am more than sure that you&#8217;ll find its beauty.</p>
<p>Happy tasking !</p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2008/09/increase-productivity-with-todoist/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Beware of the so called &quot;Senior PHP Developers&quot;</title>
		<link>http://phpfour.com/blog/2008/08/beware-of-so-called-senior-php-developers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=beware-of-so-called-senior-php-developers</link>
		<comments>http://phpfour.com/blog/2008/08/beware-of-so-called-senior-php-developers/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 08:16:34 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[RBS]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[employment]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[job]]></category>
		<category><![CDATA[senior]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=108</guid>
		<description><![CDATA[With the rise of PHP developer as career, many are trying to get their share in the pie. Lately I&#8217;ve met a number of developers who have worked for more than one/two years in developing PHP applications in various companies and they consider themselves as &#8220;senior&#8221; developers. They try to emphasize that they&#8217;ve done enough [...]]]></description>
			<content:encoded><![CDATA[<p>With the rise of <a href="http://www.boringguys.com/2008/05/13/php-developer-jobs-are-the-hottest-ever/">PHP developer as career</a>, many are trying to get their share in the pie. Lately I&#8217;ve met a number of developers who have worked for more than one/two years in developing PHP applications in various companies and they consider themselves as &#8220;senior&#8221; developers. They try to emphasize that they&#8217;ve done enough raw programming and they are now in a position where they&#8217;ll only design architecture of applications.</p>
<p>When you interview them and ask about complex topics, they&#8217;ll reply: &#8220;<strong>Oh my last company didn&#8217;t allow me work with that, but I&#8217;ll be able to grab that in a day</strong>&#8220;. You trust them and think that if they get the chance, they&#8217;ll sure be able to excel. After all, they&#8217;ve got that Company X&#8217;s experience and Guru Y&#8217;s reference.<br />
<span id="more-108"></span><br />
At first everybody gets amazed with these developers employment history, the projects they&#8217;ve done, the technical jargons they can utter, the ideology/framework/pattern they talk about, etc etc. Everybody wants them in their team. The team who gets them finally are happier than ever, after all life will get easier to have such an expert in team.</p>
<p>Soon projects get rolling and everybody in his/her team is eagerly waiting to see the magics from these &#8220;senior&#8221; developers. To their disappointment, more ideas/criticism/review (e.g. &#8220;<em><strong>Pattern X is better than pattern Y. Why you&#8217;re choosing X?&#8221;, &#8220;Why are you doing Z in this way? Who taught you this?&#8221;, &#8220;Have you ever heard of DEF?&#8221;, &#8220;I have done research on DB normalization and you teach me schema?</strong></em>&#8220;) takes place but they don&#8217;t see actual code from these developers.</p>
<p>They come to office in an awkward timing, leaves early, works with personal things at office &#8211; but nobody can question their activity as people might not believe them. With much regret, the remaining team members continue to complete the work which the &#8220;senior&#8221; developer was suppose to do. Instead of a team <strong>synergy</strong>, an unintended <strong>pressure</strong> is created in the team.</p>
<p>Eventually the project misses deadline by miles, team members become unhappy as they had to do extra work each day to cover the team&#8217;s ass, company gets screwed as client is unhappy and decides not to do repeat business. Company digs down the cause of the failure, finds the responsible person, and fires them away.</p>
<p>Surprisingly, when a friend of the &#8220;senior&#8221; developer asks them in a social party: &#8220;What happened with the Company X you were working on?&#8221;, they&#8217;ll reply: &#8220;<em><strong>Oh that crap! You know, it&#8217;s a pain to work with junior developers. They don&#8217;t understand things. All they know is coding, no knowledge, no understanding of architecture. And the management is so poor, you won&#8217;t believe&#8230;&#8230;</strong></em>&#8220;.</p>
<p>Don&#8217;t include someone like them in your team and think twice or thrice if you don&#8217;t have many options. Try to find out how <a href="http://inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer">good programmer</a> they are in the interview. How senior they might be, ask them to write code in the interview. Try out <a href="http://smallbusiness.logoworks.com/newsletter/index.php/03/2007/02/14-killer-questions-to-ask-in-your-next-interview/?intsrc=n4.2&#038;lpn=Newsletter%20Landing">proven questions</a> that others have shared from their experience. Overall, make sure you&#8217;re taking the right person. The best hiring option is to hire &#8220;no one&#8221;.</p>
<p>Have you been in such situation? Share your experience here!</p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2008/08/beware-of-so-called-senior-php-developers/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Power situation in Bangladesh</title>
		<link>http://phpfour.com/blog/2008/04/power-situation-bd/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=power-situation-bd</link>
		<comments>http://phpfour.com/blog/2008/04/power-situation-bd/#comments</comments>
		<pubDate>Sun, 27 Apr 2008 15:30:02 +0000</pubDate>
		<dc:creator>Emran Hasan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[exciting]]></category>

		<guid isPermaLink="false">http://www.phpfour.com/blog/?p=102</guid>
		<description><![CDATA[Nothing to say much, check the image below: Utilizing boring time during load shedding hours]]></description>
			<content:encoded><![CDATA[<p>Nothing to say much, check the image below:</p>
<p><center><strong>Utilizing boring time during load shedding hours</strong></center> </p>
<p><img src="http://www.phpfour.com/blog/wp-content/uploads/2008/04/image003.gif" alt="Power line in BD" title="Power line in BD" width="550" height="430" class="alignnone size-full wp-image-103" /></p>
]]></content:encoded>
			<wfw:commentRss>http://phpfour.com/blog/2008/04/power-situation-bd/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced

Served from: phpfour.com @ 2012-02-07 18:44:56 -->
