<?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>Tareq's Planet</title>
	<atom:link href="http://tareq.wedevs.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://tareq.wedevs.com</link>
	<description></description>
	<lastBuildDate>Sat, 14 Jan 2012 16:38:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>phpXperts seminar &#8211; 2011</title>
		<link>http://tareq.wedevs.com/2011/12/phpxperts-seminar-2011/</link>
		<comments>http://tareq.wedevs.com/2011/12/phpxperts-seminar-2011/#comments</comments>
		<pubDate>Sat, 17 Dec 2011 19:34:45 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Daily life]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1326</guid>
		<description><![CDATA[phpXperts is the biggest PHP group from Bangladesh. It was started by Hasin Hayder as a yahoo group and is a great place for newbies to ask question and to solve their problems. Now the most part of the activity of this group is based on the facebook group for phpXperts . The annual seminar [...]]]></description>
			<content:encoded><![CDATA[<p><a title="phpXperts Group" href="http://tech.groups.yahoo.com/group/phpexperts/" target="_blank">phpXperts</a> is the biggest PHP group from Bangladesh. It was started by <a title="Hasin Hayder" href="http://ofhas.in/" target="_blank">Hasin Hayder</a> as a yahoo group and is a great place for newbies to ask question and to solve their problems. Now the most part of the activity of this group is based on the <a title="phpXperts Group on facebook" href="https://www.facebook.com/groups/pxperts/" target="_blank">facebook group for phpXperts </a>.</p>
<p>The annual seminar of this group was arranged this year for the 5th time. Here is the <a title="Official 2011 phpXperts page" href="http://seminar2011.phpxperts.net/" target="_blank">official page</a> of the seminar 2011. You can find the topic list and along with their speakers there.</p>
<p>The seminar was a blast. Too many great speakers with great topics and huge number of audience was the life of the seminar. All the speakers and the listeners enjoyed this event very much.</p>
<p>There is a special portion of the seminar this year and it&#8217;s called <strong>6 minutes of fame</strong>. It was a chance for new comer speakers to speak for this first time and I was a part of this great opportunity to speak in front of the audience. So I had only 6 minutes to talk on something and I choose a topic from my favorite WordPress. The topic title was <strong>&#8220;WordPress themes &amp; Plugins development &#8211; Best Practices&#8221;</strong>. As the time was very short, I wanted to cover some of the important features that a WordPress developer should take care of. Here is the slide -</p>
<div id="__ss_10624925" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="WordPress Theme &amp; Plugin development best practices - phpXperts seminar 2011" href="http://www.slideshare.net/tareq1988/wordpress-theme-plugin-development-best-practices-phpxperts-seminar-2011" target="_blank">WordPress Theme &amp; Plugin development best practices</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/10624925" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="600" height="534"></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/12/phpxperts-seminar-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Things to do after installing Ubuntu 11.10 Oneiric Ocelot</title>
		<link>http://tareq.wedevs.com/2011/10/things-to-do-after-installing-ubuntu-11-10/</link>
		<comments>http://tareq.wedevs.com/2011/10/things-to-do-after-installing-ubuntu-11-10/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 15:05:23 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[11.10]]></category>
		<category><![CDATA[gnome3]]></category>
		<category><![CDATA[oneiric ocelot]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1324</guid>
		<description><![CDATA[The new Ubuntu is here 2 days ago. I was using Natty Narwhal (11.04) and didn&#8217;t take any risk to use Gnome 3 there. But I couldn&#8217;t resist myself to switch to Gnome 3 this time. Here is some things I did after installing 11.10 - [Note: If you are in Bangladesh, change the default [...]]]></description>
			<content:encoded><![CDATA[<p>The new Ubuntu is here 2 days ago. I was using Natty Narwhal (11.04) and didn&#8217;t take any risk to use Gnome 3 there. But I couldn&#8217;t resist myself to switch to Gnome 3 this time. Here is some things I did after installing 11.10 -</p>
<p>[<strong>Note:</strong> If you are in Bangladesh, change the default mirror to Main Server or Server for United States, it'll save a lot of troubles]</p>
<p><strong>1.</strong> Update your repository first</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get update</pre>
<p><strong>2.</strong> Install resticted extras package for audio/video codec support and Vlc</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install ubuntu-restricted-extras vlc</pre>
<p><strong>3.</strong> Surely you want switch to Gnome 3, aren&#8217;t you?</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install gnome-shell</pre>
<p><strong>4.</strong> Install Gnome shell Tweak tool</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install gnome-tweak-tool</pre>
<p><img class="colorbox-1324"  src="http://lh3.googleusercontent.com/-IS_B6Zmf5es/Tpbj3UvbRaI/AAAAAAAAGQA/lH-hCAUaPWE/gnome-tweak-tool.png" alt="Gnome tweak Tool" /><span id="more-1324"></span></p>
<p><strong>5.</strong> You might be very familiar with Synaptic package manager like me, install it</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install synaptic</pre>
<p><img class="colorbox-1324"  src="http://lh4.googleusercontent.com/-Orivn0pz4zU/Tpbj3R0Q-MI/AAAAAAAAGQU/Pl6jZcPpMDA/s400/synaptic.png" alt="Synaptic package manager" /></p>
<p><strong>6.</strong> You might need this file previewer for nautilus, it&#8217;s nice</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install gnome-sushi</pre>
<p><img class="colorbox-1324"  src="http://lh3.googleusercontent.com/-vNiBH010MJI/Toj29DaCVfI/AAAAAAAAGGU/72t2k4gFKtE/s400/nautilus-sushi_2.png" alt="Gnome Sushi" /></p>
<p><strong>7.</strong> To run a quick application launch command, Alt+F2 is the most useful thing. But it didn&#8217;t worked for me like many others. To fix it, open &#8220;System Settings&#8221; =&gt; Keyboard =&gt; Shortcuts =&gt; System, click &#8220;Disabled&#8221; next to &#8220;Show the run command prompt&#8221; and press ALT+F2. This should set ALT + F2 for running the command prompt.</p>
<p><strong>8.</strong> Webupd8 team has a nice repository for gnome3 shell extensions, add that repository</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo add-apt-repository ppa:webupd8team/gnome3
sudo apt-get update
sudo apt-get install gnome-shell-extensions-user-theme gnome-shell-extensions-alternative-tab gnome-shell-extensions-dock gnome-shell-extensions-drive-menu gnome-shell-extensions-pidgin gnome-shell-extensions-system-monitor gnome-shell-extensions-weather gnome-shell-extensions-windows navigator</pre>
<p><strong>9.</strong> You&#8217;ll not see any maximize, minimize buttons in the titlebar. If you are habituated by using the menu in the left side of the window, lets get those buttons and move them to the left. Open gconf-editor by pressing Alt+F2 and enter <code>gconf-editor</code> as the command. And open just like the image. Set the value of button_layout as &#8220;close,maximize,minimize:&#8221;.<br />
<img class="colorbox-1324"  src="http://i.imgur.com/0kO4P.png" alt="Gnome Configuration Editor" /></p>
<p><strong>10.</strong> Install google chrome</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo deb http://dl.google.com/linux/chrome/deb/ stable main &amp;gt;&amp;gt; /etc/apt/sources.list.d/google.list'
sudo apt-get update
sudo apt-get install google-chrome-stable</pre>
<p><strong>11.</strong> Hotot is my favorite twitter client, you might love it</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo add-apt-repository ppa:hotot-team
sudo apt-get update &amp;&amp; sudo apt-get install hotot</pre>
<p><strong>12.</strong> If you have some drives with NTFS file-system, lets mount them automatically</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install ntfs-config ntfs-3g hal</pre>
<p>then press Alt+F2 and enter the command &#8220;ntfs-config&#8221; to open the Gui</p>
<p><strong>13.</strong> Install pidgin, I hate empathy</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install pidgin</pre>
<p><strong>14.</strong> If you are a Bangladeshi user like me and use probhat or unijoy keyboard layout, lets grab the m17-db, as the layouts are missing in this version</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install ibus ibus-m17n m17n-db m17n-contrib ibus-gtk</pre>
<p>Now you can use probhat or unijoy or inscript using ibus. The default keyboard has also probhat keyboard support, but I like to use ibus. iBus doesn&#8217;t run every time you login in ubuntu, so we need to run it on startup. Goto &#8220;Startup Applications&#8221; =&gt; click the button: Add and input the data like this:</p>
<blockquote><p>Name: IBus daemon<br />
Command: /usr/bin/ibus-daemon -d<br />
Comment: start IBus daemon when Gnome starts</p></blockquote>
<p><strong>15.</strong> You might need to install build essential package if you are related to programming and geany</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install build-essential geany</pre>
<p><strong>16.</strong> Install skype</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install skype</pre>
<p><strong>17.</strong> Shutter is a great tool for taking screenshots</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install shutter</pre>
<p><strong>18.</strong> You can install tasksel. It helps to install a bunch of things at once. Like installing LAMP server with sudo tasksel install lamp-server. But before this, you need to install tasksel</p>
<pre class="brush: bash; gutter: false; title: ; notranslate">sudo apt-get install tasksel</pre>
<p>Thats the all thing I can remember right now.</p>
<h3>Some shell tips:</h3>
<ul>
<li>You can start screencast recording in gnome3 by pressing Ctrl+Alt+Shift+R. It&#8217;ll save in your home folder in webm format.</li>
<li>Launch any program by pressing windows key and typing the program name</li>
<li>In Gnome3, at first you have to logout and then you can shutdown/restart your computer. But clicking at your username in top-right corner at the screen and pressing Alt key will change the option named the &#8220;Suspend&#8221; into a &#8220;Power Off&#8221; menu item.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/10/things-to-do-after-installing-ubuntu-11-10/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Galaxy Mini S5570 downgrading Gingerbread 2.3.4 to Froyo 2.1</title>
		<link>http://tareq.wedevs.com/2011/10/galaxy-mini-s5570-downgrading-gingerbread-2-3-4-to-froyo-2-1/</link>
		<comments>http://tareq.wedevs.com/2011/10/galaxy-mini-s5570-downgrading-gingerbread-2-3-4-to-froyo-2-1/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 13:29:33 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Bangla]]></category>
		<category><![CDATA[bengali]]></category>
		<category><![CDATA[complex script]]></category>
		<category><![CDATA[froyo]]></category>
		<category><![CDATA[gingerbread]]></category>
		<category><![CDATA[indic]]></category>
		<category><![CDATA[phone]]></category>
		<category><![CDATA[ROM]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1321</guid>
		<description><![CDATA[After I saw the latest release Gingerbread 2.3.4 in samfirmwire.com about a month ago, I decided to upgrade my Galaxy Mini from Froyo (2.1). I upgraded without any hassle. The experience was quite good. The phone was more faster and also the touch response was really good. I was happy with that But, as Bangla [...]]]></description>
			<content:encoded><![CDATA[<p>After I saw the latest release Gingerbread 2.3.4 in <a title="Sam Firmware" href="http://www.samfirmware.com/WEBPROTECT-s5570.htm" target="_blank">samfirmwire.com</a> about a month ago, I decided to upgrade my Galaxy Mini from Froyo (2.1). I upgraded without any hassle. The experience was quite good. The phone was more faster and also the touch response was really good. I was happy with that <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1321' /> </p>
<p>But, as Bangla is my native language and I use it a lot in my online activity including twitter, facebook, forum, etc &#8211; it was a must have support for my phone and I had that in my default ROM (<strong>S5570DDKC1</strong>). Although I had root my phone and install a new font. What problem I faced that, the gingerbread build of the ROM hadn&#8217;t support for complex script rendering. Although it was an Asian build, but it was lacking of complex script rendering support. So I couldn&#8217;t see Bangla clearly on the Gingerbread. Replacing the DroidSansFallback.ttf font was showing the characters, but rendering was faulty. So I decided to downgrade my Android OS to the Froyo stock ROM. I tried two Gingerbread ROM that time, one is <strong>S5570ZSKPB &#8211; China build</strong> and other one was <strong>S5570XXKPK &#8211; Russian build</strong>.<br />
<span id="more-1321"></span></p>
<p>So, what I did next is &#8211; download the official ROM and install with the mighty Odin <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1321' />  . But the problem was, it didn&#8217;t boot after installing Froyo. After installing, it comes with just a black screen and nothing else, no samsung logo or anything. But Odin can detect it. I was confused, why it doesn&#8217;t boot? As the power button and any combination key was not working (including the download mode combination), I thought I bricked my precious phone <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley colorbox-1321' />  . But then I found a way, removed the battery, pressing volume down+menu+power and again inserting the battery, the phone comes to download mode again. Then installing gingerbread boots fine, but when I install Froyo, it doesn&#8217;t boot.</p>
<p>The problem was, the bootloader of the Gingerbread was updated version than Froyo. So it replaced the Froyo bootloader and when I was installing the Froyo ROM, the Gingerbread bootloader was refusing to boot again. So I had to somehow replace the bootloader with the Froyo bootloader.</p>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://1.bp.blogspot.com/-B_zZY64DE8w/TjGayKCvlkI/AAAAAAAABxk/HAUBd6M7JC8/s1600/odin+xxkpg+s5570+2.3.4+gingerbread.jpg"><img class="  colorbox-1321" title="ROM without bootloader" src="http://1.bp.blogspot.com/-B_zZY64DE8w/TjGayKCvlkI/AAAAAAAABxk/HAUBd6M7JC8/s320/odin+xxkpg+s5570+2.3.4+gingerbread.jpg" alt="ROM without bootloader" width="320" height="223" /></a><p class="wp-caption-text">ROM without bootloader</p></div>
<p>You&#8217;ll see that, what ROM&#8217;s you get in samfirmware is only a single *.tar file. So I had to find a ROM that comes with a bootloader too. Luckily, samfirmware has this one. You&#8217;ll see the last part of the <a title="Sam Firmware" href="http://www.samfirmware.com/WEBPROTECT-s5570.htm" target="_blank">ROM page</a> is &#8220;Provider Samsung S5570 Firmwares&#8221;. Those ROM&#8217;s comes with 4 different files. I downloaded the &#8220;<strong>S5570XWKE3</strong>&#8221; ROM and found the following files:</p>
<ol>
<li>APBOOT_S5570XWKE3_CL991862_REV02_user_low_true.tar.md5</li>
<li>CODE_S5570XWKE3_CL991862_REV02_user_low_true.tar.md5</li>
<li>GT-S5570-CSC-ERAKE3.tar.md5</li>
<li>MODEM_S5570XXKB2_CL968961_REV02.tar.md5</li>
</ol>
<div class="wp-caption aligncenter" style="width: 410px"><a href="http://4.bp.blogspot.com/-gkWcapOu2W0/ToS3jKcfxcI/AAAAAAAAB7g/W-Bmh0jUJMk/s1600/odin+flashing+arabic+android+2.3.4+gingerbread+s5570jpq8+samsung+galaxy+Mini.jpg"><img class="   colorbox-1321" title="ROM with bootloader" src="http://4.bp.blogspot.com/-gkWcapOu2W0/ToS3jKcfxcI/AAAAAAAAB7g/W-Bmh0jUJMk/s400/odin+flashing+arabic+android+2.3.4+gingerbread+s5570jpq8+samsung+galaxy+Mini.jpg" alt="ROM with bootloader" width="400" height="267" /></a><p class="wp-caption-text">ROM with bootloader</p></div>
<p>Installing this ROM with Odin did the trick and my phone was again back to Froyo. As now I&#8217;ve the Froyo bootloader, again I installed the Indian ROM S5570DDKC1. And again I got the nice Bangla support <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1321' /> </p>
<p>This font rendering part is keeping us away from using the latest build. Android developers should really give us a way to choose what language we want to use, may be with some external application or some another way. I see posts in Google android group, XDA developers forum and other android forums &#8211; people are shouting about this issue. But no solve came till now. It&#8217;s really depressing, we badly need it <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley colorbox-1321' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/10/galaxy-mini-s5570-downgrading-gingerbread-2-3-4-to-froyo-2-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Simple pagination system in your WordPress plugins</title>
		<link>http://tareq.wedevs.com/2011/07/simple-pagination-system-in-your-wordpress-plugins/</link>
		<comments>http://tareq.wedevs.com/2011/07/simple-pagination-system-in-your-wordpress-plugins/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 09:38:19 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1315</guid>
		<description><![CDATA[May be you are developing a plugin or a theme and it has something to do with handing some pagination of your custom tables data. Here&#8217;s how we can simply manage it, I am not going to build all the admin panel stuffs, but just showing you the process. Step 1: Lets get the page [...]]]></description>
			<content:encoded><![CDATA[<p>May be you are developing a plugin or a theme and it has something to do with handing some pagination of your custom tables data. Here&#8217;s how we can simply manage it, I am not going to build all the admin panel stuffs, but just showing you the process.</p>
<h3>Step 1:</h3>
<p>Lets get the page number from the url query string. If we don&#8217;t find anything, we&#8217;ll set the page number to 1.</p>
<pre class="brush: php; title: ; notranslate">
$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
</pre>
<h3>Step 2:</h3>
<p>Now we need to set <code>per page entry limit</code> and the <code>page offset</code>. We will use the limit and offset to get data from our MySQL query. If you are confused about the offset, may be you&#8217;ve seen it on PHPMyAdmin like this: <code>"SELECT * FROM `table_name` LIMIT 0, 10"</code>. Here, we are getting the first 10 entries from our database. If we want get the next 10 entries, our limit will be <code>"LIMIT 10, 10"</code>. So the first digit for the limit is the offset. It tells us from where we&#8217;ll get our next entries.</p>
<pre class="brush: php; title: ; notranslate">
$limit = 10;
$offset = ( $pagenum - 1 ) * $limit;
</pre>
<p>So, by this two lines we are setting the limit and our offset dynamically.<span id="more-1315"></span></p>
<h3>Step 3:</h3>
<p>Now we need to get the entries from our database table with the help of our limit and offset variable and need to show them as you like, may be in a table.</p>
<pre class="brush: php; title: ; notranslate">
$entries = $wpdb-&gt;get_results( &quot;SELECT * FROM {$wpdb-&gt;prefix}table_name LIMIT $offset, $limit&quot; );
</pre>
<p>So, now if you change the url &#8220;pagenum&#8221; paramater from your browser, you can see that we are getting the entries by our page number. So it&#8217;s like we have completed our pagination system <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1315' /> </p>
<h3>Step 4:</h3>
<p>As we have completed the pagination system working, we just need to show the pagination links now and we&#8217;ll be done. WordPress gives us a nice function <code>"paginate_links"</code> to generate a cool pagination navigation link.<br />
At first, we need to get the count of <code>total number</code> of entries in our table and calculate how many pages will need to show the whole entries.</p>
<pre class="brush: php; title: ; notranslate">
$total = $wpdb-&gt;get_var( &quot;SELECT COUNT(`id`) FROM {$wpdb-&gt;prefix}table_name&quot; );
$num_of_pages = ceil( $total / $limit );
</pre>
<p>Now, we can use that nifty function <a href="http://codex.wordpress.org/Function_Reference/paginate_links" target="_blank">paginate_links</a> to generate our pagination links.</p>
<pre class="brush: php; title: ; notranslate">
$page_links = paginate_links( array(
	'base' =&gt; add_query_arg( 'pagenum', '%#%' ),
	'format' =&gt; '',
	'prev_text' =&gt; __( '&amp;laquo;', 'aag' ),
	'next_text' =&gt; __( '&amp;raquo;', 'aag' ),
	'total' =&gt; $total,
	'current' =&gt; $pagenum
) );

if ( $page_links ) {
	echo '&lt;div class=&quot;tablenav&quot;&gt;&lt;div class=&quot;tablenav-pages&quot; style=&quot;margin: 1em 0&quot;&gt;' . $page_links . '&lt;/div&gt;&lt;/div&gt;';
}
</pre>
<p>So, we are passing our <code>current page number</code> and <code>total number of pages</code> to that function and we are getting a nice and cool pagination system.</p>
<p>Here&#8217;s a sample code for generating a table with data from your posts table.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
global $wpdb;

$pagenum = isset( $_GET['pagenum'] ) ? absint( $_GET['pagenum'] ) : 1;
$limit = 5;
$offset = ( $pagenum - 1 ) * $limit;
$entries = $wpdb-&gt;get_results( &quot;SELECT * FROM {$wpdb-&gt;prefix}posts LIMIT $offset, $limit&quot; );

echo '&lt;div class=&quot;wrap&quot;&gt;';

?&gt;
&lt;table class=&quot;widefat&quot;&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th scope=&quot;col&quot; class=&quot;manage-column column-name&quot; style=&quot;&quot;&gt;Post Title&lt;/th&gt;
			&lt;th scope=&quot;col&quot; class=&quot;manage-column column-name&quot; style=&quot;&quot;&gt;Date&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;

	&lt;tfoot&gt;
		&lt;tr&gt;
			&lt;th scope=&quot;col&quot; class=&quot;manage-column column-name&quot; style=&quot;&quot;&gt;Post Title&lt;/th&gt;
			&lt;th scope=&quot;col&quot; class=&quot;manage-column column-name&quot; style=&quot;&quot;&gt;Date&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/tfoot&gt;

	&lt;tbody&gt;
		&lt;?php if( $entries ) { ?&gt;

			&lt;?php
			$count = 1;
			$class = '';
			foreach( $entries as $entry ) {
				$class = ( $count % 2 == 0 ) ? ' class=&quot;alternate&quot;' : '';
			?&gt;

			&lt;tr&lt;?php echo $class; ?&gt;&gt;
				&lt;td&gt;&lt;?php echo $entry-&gt;post_title; ?&gt;&lt;/td&gt;
				&lt;td&gt;&lt;?php echo $entry-&gt;post_date; ?&gt;&lt;/td&gt;
			&lt;/tr&gt;

			&lt;?php
				$count++;
			}
			?&gt;

		&lt;?php } else { ?&gt;
		&lt;tr&gt;
			&lt;td colspan=&quot;2&quot;&gt;No posts yet&lt;/td&gt;
		&lt;/tr&gt;
		&lt;?php } ?&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

&lt;?

$total = $wpdb-&gt;get_var( &quot;SELECT COUNT(`id`) FROM {$wpdb-&gt;prefix}posts&quot; );
$num_of_pages = ceil( $total / $limit );
$page_links = paginate_links( array(
	'base' =&gt; add_query_arg( 'pagenum', '%#%' ),
	'format' =&gt; '',
	'prev_text' =&gt; __( '&amp;laquo;', 'aag' ),
	'next_text' =&gt; __( '&amp;raquo;', 'aag' ),
	'total' =&gt; $num_of_pages,
	'current' =&gt; $pagenum
) );

if ( $page_links ) {
	echo '&lt;div class=&quot;tablenav&quot;&gt;&lt;div class=&quot;tablenav-pages&quot; style=&quot;margin: 1em 0&quot;&gt;' . $page_links . '&lt;/div&gt;&lt;/div&gt;';
}

echo '&lt;/div&gt;';
</pre>
<h3>Output:</h3>
<p><a href="http://tareq.wedevs.com/wp-content/uploads/2011/07/wp_plugin_pagination.png"><img class="size-medium wp-image-1316 aligncenter colorbox-1315" title="Pagination in WordPress plugins" src="http://tareq.wedevs.com/wp-content/uploads/2011/07/wp_plugin_pagination-300x158.png" alt="Pagination in WordPress plugins" width="300" height="158" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/07/simple-pagination-system-in-your-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Add your custom columns to WordPress admin panel tables</title>
		<link>http://tareq.wedevs.com/2011/07/add-your-custom-columns-to-wordpress-admin-panel-tables/</link>
		<comments>http://tareq.wedevs.com/2011/07/add-your-custom-columns-to-wordpress-admin-panel-tables/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 21:04:23 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1310</guid>
		<description><![CDATA[What? What did you said on the title? Well, I am not sure this is an appropriate title. But I am going to explain it to you. Lets say, you are making a theme or a WordPress plugin and you want to show something in the admin panel like this: We will see how can [...]]]></description>
			<content:encoded><![CDATA[<p>What? What did you said on the title? Well, I am not sure this is an appropriate title. But I am going to explain it to you.</p>
<p>Lets say, you are making a theme or a WordPress plugin and you want to show something in the admin panel like this:<a href="http://tareq.wedevs.com/wp-content/uploads/2011/07/post_custom_column_1.png"><img class="size-medium wp-image-1311 aligncenter colorbox-1310" title="post_custom_column_1" src="http://tareq.wedevs.com/wp-content/uploads/2011/07/post_custom_column_1-300x95.png" alt="Custom Post Column" width="300" height="95" /></a></p>
<p>We will see how can you add those columns to the admin panel tables and manipulate data on the table rows. Well, this is very easy to do, because WP has a really nice API to work with.</p>
<p>Now we will add those two columns to our admin panel&#8217;s post listing table. Here is the code:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
function test_modify_post_table( $column ) {
    $column['test_budget'] = 'Budget';
    $column['test_expires'] = 'Expires';

    return $column;
}
add_filter( 'manage_posts_columns', 'test_modify_post_table' );
</pre>
<p><span id="more-1310"></span>We are adding a filter on <code>"manage_posts_columns"</code>. It passes the column names of the post table as an array. We simple add our custom columns with a <code>key-value pair</code> in that array and return it. If you run this code, you can see how easy that was.</p>
<p>Now we have the columns, we need to fill those columns with actual data. We&#8217;ll use post custom fields to fill those space. Lets look at the code:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
function test_modify_post_table_row( $column_name, $post_id ) {

    $custom_fields = get_post_custom( $post_id );

    switch ($column_name) {
        case 'test_budget' :
			echo $custom_fields['cf_budget'][0] . ' USD';
            break;

        case 'test_expires' :
			echo $custom_fields['cf_expires'][0] . ' days';
            break;

        default:
    }
}

add_filter( 'manage_posts_custom_column', 'test_modify_post_table_row', 10, 2 );
</pre>
<p>We are adding another filter at <code>"manage_posts_custom_column"</code> with having two arguments. One is the column name and another is the post id. Then we are grabbing all the custom fields of the post and showing them according to the column name. The code is self explanatory. These columns will be visible to all of your <code>"Post Type"</code> listings.</p>
<h3>For Custom Post Type:</h3>
<p>If you have another <code>"Custom Post Type"</code>, lets say <code>"Tutorials"</code>, those columns will also be shown there. So, if you want to add those columns only to the Post&#8217;s table, not in other custom post types, you should add a checking option there. And if you only want to show those columns to a specific Custom Post Type, there is another hack. You need to change the first filter to something like this <code>"manage_edit-POST_TYPE_columns"</code>. Replace the <code>"POST_TYPE"</code> with your custom post type. e.g: &#8220;manage_edit-portfolio_columns&#8221; for &#8220;portfolio&#8221; type posts.</p>
<h3>For Pages:</h3>
<p>For pages, those filter will be <code>"manage_pages_columns"</code> and &#8220;<code>manage_pages_custom_column</code>&#8220;. Simple enough.</p>
<h3>User List table?</h3>
<p>What if you want to change the user list table? It&#8217;s the same process as previous. We can add our custom columns like we did before. But the first filter name will be changed to <code>codemanage_users_columnscode</code>. Here there is a slight change in the second filter. We passed two parameter for the posts, but here we will pass <code>THREE</code> paramater. Here is the sample code to add a column <code>"URL"</code> to show their website addresses:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
function test_modify_user_table( $column ) {
    $column['url'] = 'URL';

    return $column;
}

add_filter( 'manage_users_columns', 'test_modify_user_table' );

function test_modify_user_table_row( $val, $column_name, $user_id ) {
    $user = get_userdata( $user_id );

    switch ($column_name) {
        case 'url' :
            return $user-&gt;user_url;
            break;

        default:
    }

    return $return;
}

add_filter( 'manage_users_custom_column', 'test_modify_user_table_row', 10, 3 );
</pre>
<p><a href="http://tareq.wedevs.com/wp-content/uploads/2011/07/user_custom_column.png"><img class="size-medium wp-image-1312 aligncenter colorbox-1310" title="user_custom_column" src="http://tareq.wedevs.com/wp-content/uploads/2011/07/user_custom_column-300x140.png" alt="user custom column" width="300" height="140" /></a></p>
<p>Hope you enjoyed <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1310' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/07/add-your-custom-columns-to-wordpress-admin-panel-tables/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Working with IDE One API</title>
		<link>http://tareq.wedevs.com/2011/07/working-with-ide-one-api/</link>
		<comments>http://tareq.wedevs.com/2011/07/working-with-ide-one-api/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 20:39:36 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[ideone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[SOAP]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1300</guid>
		<description><![CDATA[I am very lazy to write any post. To be frank, I don&#8217;t find anything to write Today I found something to write about. It&#8217;s nothing, but some bunch of codes. I&#8217;ll describe them, they are self explanatory. The idea is to write code and compile them On-The-Cloud. It&#8217;s actually using &#8220;IDE One&#8221; api to [...]]]></description>
			<content:encoded><![CDATA[<p>I am very lazy to write any post. To be frank, I don&#8217;t find anything to write <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley colorbox-1300' /> </p>
<p>Today I found something to write about. It&#8217;s nothing, but some bunch of codes. I&#8217;ll describe them, they are self explanatory. The idea is to write code and compile them On-The-Cloud. It&#8217;s actually using &#8220;<a href="http://ideone.com/">IDE One</a>&#8221; api to compile any programming source code, and give the result back. It&#8217;s useful in the devices where you can&#8217;t use any compiler, like mobile phones. There are already many applications for mobile that works the same way. Today I just wrote it in PHP. It uses SOAP protocol to communicate to the server. Enough talks <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley colorbox-1300' /> </p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

$user = 'tareq'; //--&gt; API username
$pass = '********'; //--&gt; API password

$lang = 1; //--&gt; Source Language Code; Here is 1 =&gt; C++

$code = '#include&lt;stdio.h&gt;
int main() {
	printf(&quot;hello&quot;);
	return 0;
}
'; //--&gt; Source Code

$input = '';
$run = true;
$private = false;

//create new SoapClient
$client = new SoapClient( &quot;http://ideone.com/api/1/service.wsdl&quot; );

//create new submission
$result = $client-&gt;createSubmission( $user, $pass, $code, $lang, $input, $run, $private );

//if submission is OK, get the status
if ( $result['error'] == 'OK' ) {

    $status = $client-&gt;getSubmissionStatus( $user, $pass, $result['link'] );

    if ( $status['error'] == 'OK' ) {

        //check if the status is 0, otherwise getSubmissionStatus again
        while ( $status['status'] != 0 ) {
            sleep( 3 ); //sleep 3 seconds
            $status = $client-&gt;getSubmissionStatus( $user, $pass, $result['link'] );
        }

        //finally get the submission results
        $details = $client-&gt;getSubmissionDetails( $user, $pass, $result['link'], true, true, true, true, true );
        if ( $details['error'] == 'OK' ) {
            var_dump( $details );
        } else {
            //we got some error
            var_dump( $details );
        }
    } else {
        //we got some error
        var_dump( $status );
    }
} else {
    //we got some error
    var_dump( $result );
}
</pre>
<p>Here is a working <a href="http://labs.wedevs.com/compiler/" target="_blank">demo</a>. It might be buggy, may be you could help me to find those bugs <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley colorbox-1300' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/07/working-with-ide-one-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debugging Zend Framework using firebug</title>
		<link>http://tareq.wedevs.com/2011/05/debugging-zend-framework-using-firebug/</link>
		<comments>http://tareq.wedevs.com/2011/05/debugging-zend-framework-using-firebug/#comments</comments>
		<pubDate>Sun, 08 May 2011 17:26:58 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[firebug]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1298</guid>
		<description><![CDATA[You can use firebug to debug your Zend Framework application. May be you are using print_r(), var_dump() or Zend_Debug::dump($var), they prints the information in your application. But, with the help of FirePHP add-on for Firebug, we will be able to dump our variable on firebug console First install the FirePHP add-on for your Firebug. Then [...]]]></description>
			<content:encoded><![CDATA[<p>You can use firebug to debug your Zend Framework application. May be you are using <strong>print_r()</strong>, <strong>var_dump()</strong> or <strong>Zend_Debug::dump($var)</strong>, they prints the information in your application. But, with the help of <a title="FirePHP" href="http://firephp.org" target="_blank"><strong>FirePHP</strong></a> add-on for <a title="Firebug" href="http://getfirebug.com/" target="_blank"><strong>Firebug</strong></a>, we will be able to dump our variable on firebug console <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1298' /> </p>
<p>First install the FirePHP add-on for your Firebug. Then you can use the following snippet anywhere to dump your variables to firebug console -</p>
<pre class="brush: php; title: ; notranslate">
$writer = new Zend_Log_Writer_Firebug();
$logger = new Zend_Log( $writer );
$logger-&gt;log('My Sample Log', Zend_Log::DEBUG);
</pre>
<p>The second parameter of the Zend Logger is a constant. You can use 0-7 (zero to seven) as a parameter. Here is the details -<span id="more-1298"></span></p>
<pre class="brush: php; title: ; notranslate">
Zend_Log::EMERG   = 0;  // Emergency: system is unusable
Zend_Log::ALERT   = 1;  // Alert: action must be taken immediately
Zend_Log::CRIT    = 2;  // Critical: critical conditions
Zend_Log::ERR     = 3;  // Error: error conditions
Zend_Log::WARN    = 4;  // Warning: warning conditions
Zend_Log::NOTICE  = 5;  // Notice: normal but significant condition
Zend_Log::INFO    = 6;  // Informational: informational messages
Zend_Log::DEBUG   = 7;  // Debug: debug messages
</pre>
<p>Instead of using these constants, you can also use these methods -</p>
<pre class="brush: php; title: ; notranslate">
$logger-&gt;info('My Sample Log');
$logger-&gt;warn('My Sample Log');
$logger-&gt;err('My Sample Log');
</pre>
<p>Now, the problem is, when you are going to dump any variable to the console, the pain in the ass is to instantiate the logger <strong>Zend_Log_Writer_Firebug</strong> and <strong>Zend_Log</strong>. So lets add them to our Bootstrap.php to add them as default logger. Add this little function to your <strong>Bootstrap.php</strong></p>
<pre class="brush: php; title: ; notranslate">
protected function _initLogger() {
 $writer = new Zend_Log_Writer_Firebug();
 $logger = new Zend_Log( $writer );

 Zend_Registry::set( 'logger', $logger );
}
</pre>
<p>Now we can log our variables, arrays or anything from anywhere by writing this -</p>
<pre class="brush: php; title: ; notranslate">
Zend_Registry::get('logger')-&gt;info('my variable');
Zend_Registry::get('logger')-&gt;warn('my variable');
Zend_Registry::get('logger')-&gt;err('my variable');
</pre>
<p>It&#8217;s easy, isn&#8217;t it? <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1298' /> </p>
<h3>Logging with other options:</h3>
<p>You can add any debug helper, like</p>
<ul>
<li>error_log file</li>
<li>sending errors via email</li>
<li>error logging to database</li>
<li>writing errors to system log</li>
<li>writing log to zend server monitor</li>
</ul>
<p>It&#8217;s nothing, but just add those debug writers on our newly created _initLogger function at Bootstrap.php and add them to Zend_Log, like we did for Zend_Log_Writer_Firebug. For more info, visit <a title="Zend Log Writers" href="http://framework.zend.com/manual/en/zend.log.writers.html" target="_blank">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/05/debugging-zend-framework-using-firebug/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Get the executed query in Zend Framework</title>
		<link>http://tareq.wedevs.com/2011/05/get-the-executed-query-in-zend-framework/</link>
		<comments>http://tareq.wedevs.com/2011/05/get-the-executed-query-in-zend-framework/#comments</comments>
		<pubDate>Mon, 02 May 2011 08:56:23 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1296</guid>
		<description><![CDATA[It seems very difficult when you are working with Zend Framework and you are getting some error for some SQL query. It&#8217;s hard to debug this issue for you sometimes. Then you may need to know what was the query executed by Zend_Db_Table_Abstract that was generating the precious(!) error?. Well, that&#8217;s simple like the snipped [...]]]></description>
			<content:encoded><![CDATA[<p>It seems very difficult when you are working with Zend Framework and you are getting some error for some SQL query. It&#8217;s hard to debug this issue for you sometimes. Then you may need to know what was the query executed by <strong>Zend_Db_Table_Abstract</strong> that was generating the precious(!) error?. Well, that&#8217;s simple like the snipped below.</p>
<p>May be you have a <strong>Profile</strong> Model that extends <strong>Zend_Db_Table_Abstract</strong> and you have a <strong>getUserByName</strong> function.</p>
<pre class="brush: php; title: ; notranslate">
class Application_Model_Profile extends Zend_Db_Table_Abstract {
	protected $_name = 'users';

	function getUserByName( $user_name ) {
        $row = $this-&gt;fetchRow(&quot;username = '$user_name'&quot;);

        if (!$row) {
            return false;
        }

        return $row-&gt;toArray();
    }
}
</pre>
<p>We will write our function to debug the query like this:</p>
<pre class="brush: php; title: ; notranslate">
class Application_Model_Profile extends Zend_Db_Table_Abstract {
	protected $_name = 'users';

	function getUserByName( $user_name ) {
        $this-&gt;_db-&gt;getProfiler()-&gt;setEnabled(true); //start the profiler
        $row = $this-&gt;fetchRow(&quot;username = '$user_name'&quot;);
        $query = $this-&gt;_db-&gt;getProfiler()-&gt;getLastQueryProfile()-&gt;getQuery(); //get the last executed query
        var_dump( $query ); //show the query
        $this-&gt;_db-&gt;getProfiler()-&gt;setEnabled(false); //disable the profiler

        if (!$row) {
            return false;
        }

        return $row-&gt;toArray();
    }
}
</pre>
<h3>What we did?</h3>
<ol>
<li>We enabled the profiler before executing the query</li>
<li>Then we executed our query</li>
<li>Stored our raw query in a variable and print it</li>
<li>Finally disabled the profiler</li>
</ol>
<p>That might help you to debug the SQL <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1296' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/05/get-the-executed-query-in-zend-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Create your own phone synchronisation server</title>
		<link>http://tareq.wedevs.com/2011/02/create-your-own-phone-synchronisation-server/</link>
		<comments>http://tareq.wedevs.com/2011/02/create-your-own-phone-synchronisation-server/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 19:05:59 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Daily life]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[calendar]]></category>
		<category><![CDATA[contact]]></category>
		<category><![CDATA[cx70]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mooha]]></category>
		<category><![CDATA[siemens]]></category>
		<category><![CDATA[sync]]></category>
		<category><![CDATA[SyncML]]></category>
		<category><![CDATA[syncronisation]]></category>
		<category><![CDATA[task]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1294</guid>
		<description><![CDATA[I use Siemens CX70 mobile phone since 2005 and still I&#8217;m using it and it&#8217;s my only phone. Anyway, it&#8217;s not funny My phone&#8217;s display is going to die soon, the process already started . I love this phone for it&#8217;s customisable features. If somehow it dies or it&#8217;s stolen then I&#8217;m so dead. My [...]]]></description>
			<content:encoded><![CDATA[<p>I use Siemens CX70 mobile phone since 2005 and still I&#8217;m using it and it&#8217;s my only phone. Anyway, it&#8217;s not funny <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley colorbox-1294' />  <img class="alignright colorbox-1294" title="Siemens CX70" src="http://st2.gsmarena.com/vv/bigpic/sicx70.gif" alt="" width="139" height="184" /></p>
<p>My phone&#8217;s display is going to die soon, the process already started <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_cry.gif' alt=':cry:' class='wp-smiley colorbox-1294' /> . I love this phone for it&#8217;s customisable features. If somehow it dies or it&#8217;s stolen then I&#8217;m so dead. My 5/6 years all contact will be gone. So the best process is to sync it somewhere, so all the contacts remains and I can use those contacts to other phone. I started to dig today about this issue.</p>
<p>My OS is ubuntu and I was not able to pull those contacts from mobile to my laptop. I can&#8217;t send the contact&#8217;s via bluetooth, because it has only infra-red. So I was looking for some sync service and I found <a href="http://www.memotoo.com/" target="_blank">one</a>. After 1 hour of effort I was able to sync my contacts with the memotoo. But after syncing my contacts it says I reached the limit and I need an account upgrade <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_mad.gif' alt=':mad:' class='wp-smiley colorbox-1294' /><br />
<img class="alignleft colorbox-1294" title="mobile sync" src="http://www.digitalreviews.net/digitalreviews/images/news/2009/mobile_sync.jpg" alt="" width="280" height="261" /></p>
<p>May be there are some other cool services to sync free and I don&#8217;t know about them. If you know some, please let me know. But I decided to setup a service on my server only for me <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1294' />  and I found <a href="http://code.google.com/p/mooha/" target="_blank">mooha</a>. After looking into it, I found very easy to set it up.</p>
<p>The process is very easy, download the script from <a href="http://code.google.com/p/mooha/downloads/list" target="_blank">google code</a>. There is sql file for database table creation. Create a database on your server and import the sql file. Now give the database credentials on the config.php file and you are done <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1294' /> </p>
<p>The default username and password is mooha. You can change it and/or add as many user as you want.</p>
<p>It&#8217;s time to setup my phone&#8217;s remote synchronisation tool. I gave my mooha server address like http://example.com/mooha/index.php and my username/password and contact path it synced successfully <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_cool.gif' alt=':cool:' class='wp-smiley colorbox-1294' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/02/create-your-own-phone-synchronisation-server/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Bought Amazon Kindle for E-Book reading</title>
		<link>http://tareq.wedevs.com/2011/01/bought-amazon-kindle-for-e-book-reading/</link>
		<comments>http://tareq.wedevs.com/2011/01/bought-amazon-kindle-for-e-book-reading/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 18:32:12 +0000</pubDate>
		<dc:creator>Tareq</dc:creator>
				<category><![CDATA[Review]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[electronics]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[paypal]]></category>
		<category><![CDATA[pdf]]></category>

		<guid isPermaLink="false">http://tareq.wedevs.com/?p=1287</guid>
		<description><![CDATA[I was looking for a e-book reader device for my reading purpose, because I am not comfortable reading in the laptop screen. I went to know about Amazon Kindle device and I was looking for buying it. It&#8217;s an awesome device for e-book reading experience. But from Bangladesh it&#8217;s very hard to buy online. Paypal [...]]]></description>
			<content:encoded><![CDATA[<p>I was looking for a e-book reader device for my reading purpose, because I am not comfortable reading in the laptop screen. I went to know about Amazon Kindle device and I was looking for buying it. It&#8217;s an awesome device for e-book reading experience. But from Bangladesh it&#8217;s very hard to buy online. Paypal is not available and international transaction is also not available in our country. If I somehow manage to buy it, there is no way to bring the device to our country.</p>
<p>The only solution was to buy it online, then ship it to any country that supports shipping by amazon.com and someone is there whom I know. Then bring the device by any of those guy&#8217;s. Bring it by postal service is not secure in Bangladesh and if somehow it reaches to Bangladesh, the customs department will do extra charge to release it. It&#8217;s so much pain <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley colorbox-1287' />  <span id="more-1287"></span></p>
<p>One of my friend lives in America and some days ago I asked her if anyone is coming in Bangladesh recently. And I got positive result. Then I bought it from amazon.com with the help of one of my friend who lives in Australia. Then I shipped it in New York within two days with the help of 1 month free trial of Amazon Prime pack. It shipped to that address within two days and that guy came to Bangladesh and I managed to collect the device from him. That&#8217;s the story in short <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley colorbox-1287' /> </p>
<p>I loved the most is the electronic ink paper screen. It just feels like I&#8217;m reading on paper. When I opened the box, I saw the kindle with instructions in the screen. You can also see this in the picture. I thought it was a paper with instruction was pasted on the screen and I wanted to remove it. But pressing the screen did nothing <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley colorbox-1287' />  . After switching the device ON, it vanished. Then I came to know it was not any paper, it&#8217;s the screen. lol</p>
<p>As I said, reading in kindle is like reading in paper. The battery runs ONE MONTH with a single charge, as it is said in the spec. I was wondering how is it possible? After getting the kindle, I know it&#8217;s possible for kindle. Because, when a new page comes to display, it flashes a bit and draw the page on the screen. Whatever the content is, may be it&#8217;s text or image. But holding that drawing, no external power is needed. That means, only power is needed when drawing the page, after it there is no need of power. After you turn off kindle, it shows a random picture of any famous writer and it doesn&#8217;t need any power. Wonderful, isn&#8217;t it? <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1287' /> </p>
<p>This device supports PDF as well as an e-book format besides the kindles own AZW format and also MOBI format. Kindle has a text to speech feature, but this feature doesn&#8217;t work in PDF documents. You can increase/decrease the font size, make bold or thin, increase/decrease line height or anything. You can also rotate the screen if you feel comfortable. The only thing I saw as a drawback for mine is that, text size of PDF documents can&#8217;t be make bigger, only it can be zoomed. But it has only 150%, 200% and 300% zoom level. Font size in fit-to-width feature is small and in 150% it becomes a scrolling page and I hate to scroll <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley colorbox-1287' /> </p>
<p>The solution is to use <a href="http://calibre-ebook.com">Calibre</a>, it converts PDF to it&#8217;s native supported format. I use *.mobi as the format, but the problem is: it breaks the formatting of the original document. I am searching for any solution that it will resize the PDF document without removing the formatting.</p>
<p>It can play mp3 files and the sound quality is pretty cool, also it has a headphone port. My kindle has wifi for connecting to the Internet, but I didn&#8217;t tested it yet as I don&#8217;t have any wifi network. Otherwise besides the PDF issue of mine, it&#8217;s really a great device <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1287' /> </p>
<p>It costs total $155 ( $139 kindle + $12 tax + $3 shipping charge). Here is some pictures <img src='http://tareq.wedevs.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley colorbox-1287' />  (click to view large)</p>
<div id="attachment_1288" class="wp-caption alignnone" style="width: 160px"><a href="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_packed.jpg"><img class="size-thumbnail wp-image-1288 colorbox-1287" title="amazon_kindle_packed" src="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_packed-150x150.jpg" alt="Amazon Kindle on Pack" width="150" height="150" /></a><p class="wp-caption-text">Amazon Kindle on Pack</p></div>
<div id="attachment_1289" class="wp-caption alignnone" style="width: 160px"><a href="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_packed_2.jpg"><img class="size-thumbnail wp-image-1289 colorbox-1287" title="amazon_kindle_packed_2" src="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_packed_2-150x150.jpg" alt="Amazon Kindle on Pack" width="150" height="150" /></a><p class="wp-caption-text">Amazon Kindle on Pack</p></div>
<div id="attachment_1293" class="wp-caption alignnone" style="width: 160px"><a href="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_unpacked1.jpg"><img class="size-thumbnail wp-image-1293 colorbox-1287" title="amazon_kindle_unpacked" src="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_unpacked1-150x150.jpg" alt="Amazon Kindle unpacked" width="150" height="150" /></a><p class="wp-caption-text">Amazon Kindle unpacked</p></div>
<div id="attachment_1291" class="wp-caption alignnone" style="width: 160px"><a href="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_on_hand.jpg"><img class="size-thumbnail wp-image-1291 colorbox-1287" title="amazon_kindle_on_hand" src="http://tareq.wedevs.com/wp-content/uploads/2011/01/amazon_kindle_on_hand-150x150.jpg" alt="Amazon Kindle on hand" width="150" height="150" /></a><p class="wp-caption-text">Amazon Kindle on hand</p></div>
]]></content:encoded>
			<wfw:commentRss>http://tareq.wedevs.com/2011/01/bought-amazon-kindle-for-e-book-reading/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.589 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-22 23:03:15 -->

