<?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/"
	xmlns:georss="http://www.georss.org/georss">

<channel>
	<title>Parag Arora</title>
	<atom:link href="http://www.paragarora.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paragarora.com</link>
	<description>Exploring</description>
	<lastBuildDate>Wed, 14 Jul 2010 18:03:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Testing geotagged wordpress post</title>
		<link>http://www.paragarora.com/2010/07/testing-geotagged-wordpress-post/</link>
		<comments>http://www.paragarora.com/2010/07/testing-geotagged-wordpress-post/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 18:03:36 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/2010/07/testing-geotagged-wordpress-post/</guid>
		<description><![CDATA[Well. Quite a long time since have blogged. Learning quite interesting things these days and would like to share them some good day.
]]></description>
			<content:encoded><![CDATA[<p>Well. Quite a long time since have blogged. Learning quite interesting things these days and would like to share them some good day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2010/07/testing-geotagged-wordpress-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The prelimenary &#8211; what you gonna do</title>
		<link>http://www.paragarora.com/2010/05/the-prelimenary-what-you-gonna-do/</link>
		<comments>http://www.paragarora.com/2010/05/the-prelimenary-what-you-gonna-do/#comments</comments>
		<pubDate>Sat, 29 May 2010 07:13:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[entrepreneurship]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=130</guid>
		<description><![CDATA[Just want to write few of the learnings I can recapitulate today out of my experience last year with travelomate.  I would focus on the required things you must do or think upon, before you decide what you are going to do. I really honor if you already have done all the things for anything [...]]]></description>
			<content:encoded><![CDATA[<p>Just want to write few of the learnings I can recapitulate today out of my experience last year with travelomate.  I would focus on the required things you must do or think upon, before you decide what you are going to do. I really honor if you already have done all the things for anything you going to do in market, but would insist anyways to do an exhaustive analysis before you actually dive in.</p>
<p>Before I write down anything else, I would like to drop in a single learning which I carry out throughout every task and forms critical importance of all the steps</p>
<ol>
<li><strong>Focus on all the small things </strong>You, for sure will be able to appreciate this point when you go out in the market. This is something which is going to give you much added advantage over everything else with a comfortable entry barrier. With people to work and care taken while execution of every single step, things always results in beautiful outcomes.</li>
<li><strong>Gather lot of related market data for analysis </strong>Lets come back to analysis now assuming that above mentioned sort of advice will always be given an utmost importance. First part of every plan starts with market or industry analysis. Even if your idea or plan seems overwhelming enough for you to skip this thing, you should be very strict to yourself gathering negative data for you too to make you strong enough to fight against them when the right time comes. Read lot of related blog (I prefer Google Reader ) as others&#8217; experience is always going to help you a lot. I would rather advice you to make an account over delicious and preserve all your bookmarks there so that you can share with me or even yourself later <img src='http://www.paragarora.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><strong>Not only this&#8230; but &#8230;.  principle </strong>This is why I am writing this blog. As you may have already figured out by<span id="more-130"></span> now, you are going to be remembered for one &#8220;extra&#8221; thing which makes you distinguished and will be adding value to your brand. Now it makes sense to give lot of importance to that &#8220;extra&#8221; thing. Its a very common practice in fact, to focus on &#8220;extra&#8221; values you providing deviating from your core, e.g., lets assume that you are creating wishlist of books and then doing analytics over wishlist to suggest best deals to users from your supply chain. Your aim should not be just managing wishlist and doing intelligent analysis over that, but the aim should be &#8220;Not only providing best deals on books, but also suggesting people to buy books which they like and has good deals available&#8221;. Now always remember that &#8220;not only&#8221; part forms core of your business and you ought to make it sure that you are very strong in this part. &#8220;But&#8221; part is something from which you are going to be distinguished. Its always a learning process and you ought to make it sure that you are very flexible and adoptive to market behavior for this part.</li>
</ol>
<p>Would like to conclude by someone&#8217;s status I read somewhere</p>
<p>&#8220;Build it and they will come&#8221; <img src='http://www.paragarora.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2010/05/the-prelimenary-what-you-gonna-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SliceHost: WOOT! I have root :)</title>
		<link>http://www.paragarora.com/2010/04/slicehost-woot-i-have-root/</link>
		<comments>http://www.paragarora.com/2010/04/slicehost-woot-i-have-root/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 12:16:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[slicehost]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=119</guid>
		<description><![CDATA[Have been reading nice things about slicehost. My need was no good panel ui or one click installer and just wanted ssh access and woot! I have root @slicehost. Betting just $20 for all I am reading is OK. And wow! I got karmic installation in just few steps. Next I configured my ssh config [...]]]></description>
			<content:encoded><![CDATA[<p>Have been reading nice things about slicehost. My need was no good panel ui or one click installer and just wanted ssh access and woot! I have root @slicehost. Betting just $20 for all I am reading is OK. And wow! I got karmic installation in just few steps. Next I configured my ssh config file to easily bypass rewriting username@ip. And fewshh, I can get started with slicehost now. My server is based in San Antonio, so I was little worried about network latency. <span id="more-119"></span><br />
I then did a tracepath for ip assigned to me. It took 19 hops to reach the destination, 6th hop being in US. Avg ping time was 278 ms.<br />
I did cross checking for what they committed. Doing “df –h” command confirmed me that I have 10G space on /dev/sda1, 240M RAM and 5G swap (which I found using “free” command).<br />
Running “cat /proc/cpuinfo” confirmed that I have been given Quad Core AMD Opteron 2.2 MHz Processor with a cache size of 512kb.<br />
I added a user parag using “adduser parag” and gave all access  using “visudo” and appended this line “parag ALL=(ALL) ALL” at the end of sudoers config file.<br />
Screen is a very useful utility for me as it helps me performs some runtime tasks even if I am not logged in. So, I installed screen utility and moved on to install LAMP. Below are the steps which I followed:<br />
•    Installed build-essentials using “sudo apt-get install build-essential”<br />
•    Installed PHP5 with Apache using<br />
“sudo apt-get install php5-common php5-dev php5-mysql php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-cgi php5-mcrypt php5-curl php5-gd php5-memcache php5-mhash php5-pspell php5-snmp php5-sqlite libmagick9-dev php5-cli apache2 libapache2-mod-php5”<br />
•    Installed MySQL using<br />
“sudo apt-get install mysql-server mysql-client libmysqlclient15-dev”<br />
•    Read some where to fix imagick before starting. Did that too using “sudo apt-get install make php-pear” and then configuring using “sudo pecl install imagick”<br />
Quite satisfied with machine till now and would say good value for money.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2010/04/slicehost-woot-i-have-root/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Additive Congruential Method : maths and logic behind its spread</title>
		<link>http://www.paragarora.com/2010/03/additive-congruential-method-maths-and-logic-behind-its-spread/</link>
		<comments>http://www.paragarora.com/2010/03/additive-congruential-method-maths-and-logic-behind-its-spread/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 21:17:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[random_number algorithm maths]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=114</guid>
		<description><![CDATA[Additive Congruential Method is yet another method to generate random number in software systems which can be very easily implemented at the hardware level too.
The idea is to start with a register filled with some arbitrary pattern, then shift it right (say) a step at a time, filling in vacated positions from the left with [...]]]></description>
			<content:encoded><![CDATA[<p>Additive Congruential Method is yet another method to generate random number in software systems which can be very easily implemented at the hardware level too.</p>
<p>The idea is to start with a register filled with some arbitrary pattern, then shift it right (say) a step at a time, filling in vacated positions from the left with a bit determined by the contents of the register. The diagram below shows a simple 4-bit register, with the new bit taken as the “exclusive or” of the two rightmost bits.</p>
<p><img class="alignnone size-full wp-image-115" title="1" src="http://www.paragarora.com/wp-content/uploads/2010/03/1.png" alt="1" width="384" height="224" /></p>
<p>So, if there are 4 bits b1, b2, b3, b4 and b1-b2-b3-b4 is any random number generated; then the next number which will be generated will be such that b4(new) = b3, b3(new) = b2, b2(new) = b1 and b1(new) = b3XORb4.</p>
<p>The above example is for 4 bits and the algorithm is replicated for n bits too.</p>
<p>The problem in hand is to observe if any random number picked as seed will span all the possible numbers or not. I found a pretty elegant solution for the problem. Taking seed as 0000 clearly shows that cycle for such random number generator will be 1 as next operation on 0000 will lead us to 0000 itself. Lets see what happens when we take 1111 as seed. The cycle is as shown for the taken seed:</p>
<p>1111-&gt;0111-&gt;0011-&gt;0001-&gt;1000-&gt;0100-&gt;0010-&gt;1001-&gt;1100-&gt;0110-&gt;1011-&gt;0101-&gt;1010-&gt;1101-&gt;1110-&gt;<strong>1111</strong></p>
<p>Clearly cycle spans complete range except 0000.</p>
<p>Now it becomes obvious that any seed taken can be either 0000 or one number among the cycle mentioned above. If seed taken is 0000, cycle is of size 1 and hence it should be a must check that seed is not 0.<span id="more-114"></span> Any other seed taken belongs to the above mentioned number generation cycle and hence will have cycle length of 15 (2^n -1 if n instead of 4). So the span is total range except 0. Thus additive congruential method is very strong in terms of spread of values it takes given the seed is not 0. You pick any other random number and you always get next random number as unique number only ofcourse till the cycle is not complete / all numbers are not used exactly once.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2010/03/additive-congruential-method-maths-and-logic-behind-its-spread/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tapping the online potential &#8211; Marketing 2.0</title>
		<link>http://www.paragarora.com/2009/12/tapping-the-online-potential-marketing-2-0/</link>
		<comments>http://www.paragarora.com/2009/12/tapping-the-online-potential-marketing-2-0/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 06:11:29 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Online Marketing]]></category>
		<category><![CDATA[creative project]]></category>
		<category><![CDATA[Data Intelligence]]></category>
		<category><![CDATA[parag]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[SEM]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[System Design]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=109</guid>
		<description><![CDATA[It is very logical to run a project when you talk everything in numbers and when every little spent is done with a very targeted approach. Thats the beauty of taking your business online and most importantly, evolving the models to scale the processes. But it makes sense doing the things only if you follow [...]]]></description>
			<content:encoded><![CDATA[<p>It is very logical to run a project when you talk everything in numbers and when every little spent is done with a very targeted approach. Thats the beauty of taking your business online and most importantly, evolving the models to scale the processes. But it makes sense doing the things only if you follow very logical processes involved for the same ensuring you that none of the work is any waste of effort or resource.</p>
<p>The <strong>preliminary work</strong> that needs to be done is as below :</p>
<ol>
<li>Defining your <strong>target market</strong>. Target market is business dependent and you need to have a very good idea in mind for what users are  most expected to buy or use your service or product. In target market, one needs to mainly define the target age and income groups.<span id="more-109"></span></li>
<li>Next step involved is doing the <strong>basic </strong><strong>keyword analysis</strong>. By keyword analysis, we mean that you need to dig out the numbers of relevant keywords being searched over internet revolving around services you providing or things you selling.</li>
<li>Do <strong>target </strong><strong>market viz-a-viz sector analysis</strong>. You need to have a good statistic about target market behavior over internet. Let me explain this with a very simple example of <strong>e-commerce</strong>. Suppose you want to sell things online and you are planning to set up an e-commerce portal over net. Now the behavior study shows that whole selling industry can be broadly divided into three categories. First are <strong>content portals</strong> &#8211; these are the website which publish content majorly for brand awareness of things or services selling over internet or to introduce new stuff to visitors.  Second are <strong>review portals </strong>- these are the websites where people share their reviews about different services or products and collaborate to pick out the best services or products versus how much they are priced for. Third comes <strong>selling platforms &#8211; </strong>which are very much targeted to sell things only. Now the user behavior is: on an average, every person planning to buy anything over internet visits atleast 2 content portal on the product, some view reviews as well and then finally plan to buy the product. Other behavior learning is that the final buying is done through portals which are only selling stuff. Now, this learning can be used to understand that selling things is not just setting up a selling platform only but also to <strong>drive your narratives</strong> in review as well as content portals which will be very important.</li>
</ol>
<p>A <strong>logical marketing strategy making logic of every spent</strong> can then be prepared. Generally we land up in two situations after the work done mentioned as below:</p>
<ol>
<li>Lot of searches are  being done revolving around product or service you are trying to promote and sell. By this, we say <strong>keywords&#8217; search volume</strong> for your business is high. In that case, you should focus on tapping search results and presenting a very targeted page in search pages for the keyword searched. These targeted pages are termed as <strong>campaign pages </strong> and are proved to be the most helpful way to create leads for your business. The creative of the campaign page too matters a lot. An example of target page/campaign page can be seen here &#8211; <a href="http://travelomate.com/c/luxury/golden-triangle.php">http://travelomate.com/c/luxury/golden-triangle.php</a>. The other way will be to make land your user to the awareness page mentioning why you are different and how you can add value to them/their business where you put down effective content as text, picture or video.</li>
<li><strong>Keywords&#8217; search volume</strong> for your business is low. Do not worry. The only problem here is there is no online awareness of things you are doing and this would also mean that you probably will be the first person to bring your business on those lines. A very strategic Brand Awareness Campaigning is prepared in which once you have defined your target market, a <strong>social network media planning</strong> is done targeting your target market as was defined and calculating what percent of target area&#8217;s market will be hit by your brand campaigning. The models for the campaigning will be Pay per Click, Pay per Impression and organic marketing along with which is known as Social Media Marketing.</li>
</ol>
<p>That is the basic overview for the learnings before you start your project or thoughts. Good luck for everything.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2009/12/tapping-the-online-potential-marketing-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page Load Optimizations &#8211; the first step before any launch on web</title>
		<link>http://www.paragarora.com/2009/12/page-load-optimizations-the-first-step-before-any-launch-on-web/</link>
		<comments>http://www.paragarora.com/2009/12/page-load-optimizations-the-first-step-before-any-launch-on-web/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 16:10:47 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Search Engine Optimization]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[System Design]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=104</guid>
		<description><![CDATA[Lately I have observed that average page download time affects a lot for Google Crawling. Was doing lot of optimizations for a website and in the process of doing that again. Seeing lot change in Search Engine results too.

The above picture shows the website&#8217;s Time spent downloading a page (in milliseconds) which is taken down [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have observed that average page download time affects a lot for Google Crawling. Was doing lot of optimizations for a website and in the process of doing that again. Seeing lot change in Search Engine results too.</p>
<p><img class="alignnone size-full wp-image-105" title="chart" src="http://www.paragarora.com/wp-content/uploads/2009/12/chart.png" alt="chart" width="500" height="150" /></p>
<p>The above picture shows the website&#8217;s <strong>Time spent downloading a page (in milliseconds) </strong>which is taken down to 1.23 seconds average from initial 16 seconds.<span id="more-104"></span></p>
<p>Following were the optimizations which were done to achieve that:</p>
<ol>
<li>Compressed CSS and JavaScript files to one file</li>
<li>Created widgets publishing strategy according to the website traffic.</li>
<li>Optimized in page javascript to a lot.</li>
<li>Hosted all the images to images.sitename.com in an <a href="http://wiki.nginx.org/Main">NGinx </a>server which is known for serving static content faster.</li>
<li>Did &lt;a name&gt; mapping to serve files at different places and made the whole architecture independent of each other using various integration API&#8217;s</li>
<li>On process of doing more <img src='http://www.paragarora.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>The purpose of the blog is, apart from all other scalabilities, these things are most essential to do and to figure out lot more other things so that page load time comes down.  If you have any site, feel free to ping me and ask for optimization strategies. And if you are targeting lot of Google optimizations, doing page load optimizations is <strong>THE</strong> first step before onsite content optimization even, the reason being you need to ensure that pages crawled frequency should be high if you are spending on content.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2009/12/page-load-optimizations-the-first-step-before-any-launch-on-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows.onload event call while making a widget</title>
		<link>http://www.paragarora.com/2009/09/windows-onload-event-call-while-making-a-widget/</link>
		<comments>http://www.paragarora.com/2009/09/windows-onload-event-call-while-making-a-widget/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 21:34:30 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[joomla]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=94</guid>
		<description><![CDATA[While working on Joomla, with infinite plugins and modules installed, I was facing the problem that Google Maps was not working on pages. After 4 hours of digging and frustrations, I finally found that one of my module was using JavaScript include in which windows.onload() event was called which is also called while loading Google [...]]]></description>
			<content:encoded><![CDATA[<p>While working on Joomla, with infinite plugins and modules installed, I was facing the problem that Google Maps was not working on pages. After 4 hours of digging and frustrations, I finally found that one of my module was using JavaScript include in which windows.onload() event was called which is also called while loading Google Maps. So as the page was being loaded, windows.onload event of Google maps was called first and then windows.onload event of the module was called overriding event call of google maps.</p>
<p>Shit happens while coding and so was done by developers of the module.</p>
<p>Here is the learning part:</p>
<p>The javascript file of the module contained following code:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">windows.<span class="kw3">onload</span> = <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;localize<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw2">var</span> randomnumber = Math.<span class="me1">floor</span><span class="br0">&#40;</span>Math.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span>*<span class="nu0">10000</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;<span class="kw2">var</span> date = <span class="kw2">new</span> Date<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p><span id="more-94"></span>As this javascript file was loaded, the already loaded windows.onload function to load Google Maps was over ridden. Since, I had to use both the module as well as Google Maps plugin, this is how I altered the code:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">var</span> oldonload = window.<span class="kw3">onload</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw1">typeof</span> window.<span class="kw3">onload</span> != <span class="st0">&#8216;function&#8217;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>window.<span class="kw3">onload</span> = loadShrekOnloader;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span> window.<span class="kw3">onload</span> = <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="kw1">if</span> <span class="br0">&#40;</span>oldonload<span class="br0">&#41;</span><span class="br0">&#123;</span>oldonload<span class="br0">&#40;</span><span class="br0">&#41;</span>;<span class="br0">&#125;</span>loadShrekOnloader<span class="br0">&#40;</span><span class="br0">&#41;</span>;<span class="br0">&#125;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="kw2">function</span> loadShrekOnloader<span class="br0">&#40;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; localize<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> randomnumber = Math.<span class="me1">floor</span><span class="br0">&#40;</span>Math.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span>*<span class="nu0">10000</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw2">var</span> date = <span class="kw2">new</span> Date<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>So the learning is never use windows.onload event stand alone especially when you are making module or third party service or widget. Always detect onloaded functions and append to them whatever you want to initiate.</p>
<p>Lot of learnings to do still. Happy coding <img src='http://www.paragarora.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2009/09/windows-onload-event-call-while-making-a-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Architecture Design Example &#8211; Geographical based</title>
		<link>http://www.paragarora.com/2009/08/architecture-design-example-geographical-based/</link>
		<comments>http://www.paragarora.com/2009/08/architecture-design-example-geographical-based/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 10:25:23 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Hardware Architecture]]></category>
		<category><![CDATA[project planning]]></category>
		<category><![CDATA[System Design]]></category>
		<category><![CDATA[Web Architecture]]></category>
		<category><![CDATA[website architecture]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=90</guid>
		<description><![CDATA[Have come up with architecture for things I had in mind and readings I have been doing a lot. Shown below is a scalable architecture, according to which the software architecture should be written for an application which will be used in different locations and requires geographical based traffic optimizations.
I will be requiring lot of [...]]]></description>
			<content:encoded><![CDATA[<p>Have come up with architecture for things I had in mind and readings I have been doing a lot. Shown below is a scalable architecture, according to which the software architecture should be written for an application which will be used in different locations and requires geographical based traffic optimizations.</p>
<p>I will be requiring lot of inputs from readers to correct this architecture discussing various problems with it along with enhancements that can be done. Will really appreciate inputs. I can also be contacted at parag dot arora at gmail to discuss a better architecture for the given need.</p>
<div class="wp-caption alignnone" style="width: 542px"><img title="hardware-architecture" src="http://www.paragarora.com/wp-content/uploads/2009/08/081909-1025-architectur1.jpg" alt="" width="532" height="378" /><p class="wp-caption-text">hardware-architecture</p></div>
<p><span id="more-90"></span></p>
<ul>
<li><strong>Web Servers: </strong>This will be first level of geographical mapping of servers. Web Servers will be also having a view caching so that the view loading is enhanced in terms of speed. The scaling of web servers will depend on where (in terms of geography) the traffic has been increasing. A person sitting in US will be actually accessing a server based in US and person sitting in India will be accessing a server based in India. Such mechanism will ensure fast connectivity as accessibility time will be reduced. There will be a master server where the IP&#8217;s will be mapped to server address in a hash table which will be cached in RAM and after detecting client&#8217;s IP, we will direct the client to the server in their area.  To start with, this master server will act as the web server and the scalable web servers mentioned will be introduced as we start entering into other countries. The best mechanism will be to have dedicated domains like .co.uk, .co.in, .co.us etc. for web server mapping.<strong><br />
</strong></li>
<li><strong>App Servers: </strong>Web server will interact with application servers where the business process will be done. The application servers will host business process of features and will form a bridge between web servers and database. Each web server will be mapped to one or more application servers which will reside in the same geographical location as of web server. Initially, in the first phase, application server and web server will be physically same machines.  Most of the AJAX functionalities will be served via these servers only. All the dynamic information will be served via these server and web servers will host only template files and javascripts or more precisely the client side interaction code. Sessions will also be saved in app servers. <strong><br />
</strong></li>
<li><strong>DB master servers: </strong>Application servers will directly interact with database master servers. Sharding will be done in database which will be done through master-slave architecture using entity lookup services. The core purpose of master servers will be to maintain slave mappings w.r.t. entities. e.g., if there are lots of micro updates entered by users, then we will use sharding techniques to save these updates. Every user will be mapped to a slave database servers containing micro updates table and master server will maintain a memcache which will contain a table mapping users (or a user groups to enhance efficiency and decrease data stored in master servers) to slave servers.<br />
A problem exists for such an architecture. Suppose the user lives in India and web server in India connect to App Server which try to lookup user in master server memcache. If users try to connect from India, then there will be no problem. Now suppose that the same user goes to Canada and try connecting to our website. Then obviously memcache placed in Canada will not contain this user record.<strong><br />
</strong> The proposed solution for this problem is, we will maintain the universal copies within the database and memcache will only contain the active users&#8217; data. If the user (discussed) record is not found in memcache of master db server in Canada, it will query the user record from the copied database and save it in memcache.<strong><br />
</strong>The slave access will obviously be little slow in this case since the data finally is retrieved from server based in India but this is obvious as we should not maintain lot of copies of same data. This server will require lot of data copying and will be little inefficient in terms of storage but will be useful if the users belonging to website shifts their locations too often (more travelling users).<br />
The other solution to this problem can be master web server will contain the access server of every user and in addition of keeping track of ip of user from next login, it will also contain user &#8211; access server mapping in the lookup table. This approach assumes that most of the users will not shift countries too often. <strong><br />
</strong></li>
<li><strong>DB slave servers:</strong> Wherever sharding is used, master servers will save, update or retrieve data from these slave servers.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2009/08/architecture-design-example-geographical-based/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TechDev Stages</title>
		<link>http://www.paragarora.com/2009/08/techdev-stages/</link>
		<comments>http://www.paragarora.com/2009/08/techdev-stages/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 17:56:50 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[Hardware Architecture]]></category>
		<category><![CDATA[Scalibility]]></category>
		<category><![CDATA[Sharding]]></category>
		<category><![CDATA[System Design]]></category>
		<category><![CDATA[Web Architecture]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=80</guid>
		<description><![CDATA[A lot of times people ask me what to do next whenever any business problem is given and we need to plan out for its technical execution. I am also a starter as an executor but a very fast learner too J.  My immediate concern is how concrete or refined the business problem is. [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of times people ask me what to do next whenever any business problem is given and we need to plan out for its technical execution. I am also a starter as an executor but a very fast learner too <span style="font-family:Wingdings">J</span>.  My immediate concern is how concrete or refined the business problem is. If the problem is not concrete, we need to evolve it but bravo! if the problem is well defined. From technical execution side we need to look upon building the architecture first. Building architecture includes building entity relationship diagram of the business problem to creating relational database to creating hardware level architecture.</p>
<p><img src="http://www.paragarora.com/wp-content/uploads/2009/08/081609-1746-techdevstag1.jpg" alt="" /><span id="more-80"></span><span style="font-family:Times New Roman; font-size:12pt"><br />
</span></p>
<p><span style="font-family:Times New Roman; font-size:18pt"><strong>1. Software<br />
</strong></span></p>
<p>As soon as the business problem is clear, following are the approaches which one IMO should follow</p>
<p><img src="http://www.paragarora.com/wp-content/uploads/2009/08/081609-1746-techdevstag2.jpg" alt="" /></p>
<p><strong>1.1 <a href="http://en.wikipedia.org/wiki/Entity" target="_blank">Entities</a></strong></p>
<p>The first is figuring out entities. The entities should be defined in such a way that objects of similar entities can be formed out of entities.</p>
<p><strong>1.2 <a href="http://en.wikipedia.org/wiki/Entity-relationship_model" target="_blank">Relations</a></strong></p>
<p>The next step is finding relations among the entities. Relations should be well defined and the entity relationship diagram should be clearly understandable to a layman too.</p>
<p><strong>1.3 <a href="http://en.wikipedia.org/wiki/Database">Database</a></strong></p>
<p>Next step is mapping these entities to database tables. The relations should also be defined in the database model and depending on the datamapping classes or approaches you are going to use, you need to make these relations fit into tables or create separate tables for relations (read about database 5<sup>th</sup> normalization or 5NF).</p>
<p><span style="font-family:Times New Roman; font-size:18pt"><strong>2. Hardware<br />
</strong></span></p>
<p><img src="http://www.paragarora.com/wp-content/uploads/2009/08/081609-1746-techdevstag3.jpg" alt="" /><span style="font-family:Times New Roman; font-size:12pt"><br />
</span></p>
<p><span style="font-family:Times New Roman; font-size:13pt"><strong>2.1 Needs<br />
</strong></span></p>
<p>For deciding the hardware architecture, first thing is to figure out all the needs. e.g., needs can be, there will be lot of micro updates (like in twitter ) or lot of photos (like in facebook).  Then one of the standard approaches, like database sharding using lookup services (for these examples) can be used. It is thus very important to understand the needs of the system in terms of requests as well as transfers and storage before deciding any hardware level architecture.</p>
<p><span style="font-family:Times New Roman; font-size:13pt"><strong>2.2 Solutions<br />
</strong></span></p>
<p>Once the needs are defined, hardware solutions can be thought of one by one to sort out the problems to be tackled. Initially application can be started with one server architecture but it should be scalable enough to do all sort of sharding, master – slave scaling etc. in just few clicks. The scalability of architecture will be decided by how well the application can be scaled to solve problems in different ways. For that you need to be aware of standard solutions . Be sure that you know about standard approaches like profiling, indexing, caching, monitoring, performance testing, schema normalizations etc before you actually make the final hardware architecture.</p>
<p><span style="font-family:Times New Roman; font-size:13pt"><strong>2.3 Hardware Architecture<br />
</strong></span></p>
<p>Once you have figured out all the problems from top to bottom and thought about all the solutions to handle these issues, you need to integrate all the solutions to make one scalable architecture diagram of hardware. Also try giving you servers some name which can be used for mapping things while sharding etc. in case in future.  It is very important at this point  of time to document all the scalability solutions you have thought of.</p>
<p><span style="font-family:Times New Roman; font-size:18pt"><strong>3. Dev<br />
</strong></span></p>
<p><img src="http://www.paragarora.com/wp-content/uploads/2009/08/081609-1746-techdevstag4.jpg" alt="" /><span style="font-family:Times New Roman; font-size:12pt"><br />
</span></p>
<p><span style="font-family:Times New Roman; font-size:13pt"><strong>3.1 Dive Hard<br />
</strong></span></p>
<p>The final step is to dive hard into development. It is always useful to use standard approaches like <a href="http://www.indiastudychannel.com/resources/12364-MVC-architecture.aspx" target="_blank">MVC</a>, <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM</a> for a flexible web design.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2009/08/techdev-stages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Planning a project</title>
		<link>http://www.paragarora.com/2009/08/planning-a-project/</link>
		<comments>http://www.paragarora.com/2009/08/planning-a-project/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 09:31:47 +0000</pubDate>
		<dc:creator>Parag Arora</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[creative project]]></category>
		<category><![CDATA[parag]]></category>
		<category><![CDATA[project planning]]></category>

		<guid isPermaLink="false">http://www.paragarora.com/?p=63</guid>
		<description><![CDATA[Found a very interesting presentation on planning a project. ( m4icqewrf7 )
Creative Project Planning ideas
Source: http://www.slideshare.net/joanna_maxwell/creative-project-planning-ideas-1801931
]]></description>
			<content:encoded><![CDATA[<p>Found a very interesting presentation on planning a project. ( m4icqewrf7 )</p>
<div id="__ss_1801931" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Creative Project Planning ideas" href="http://www.slideshare.net/joanna_maxwell/creative-project-planning-ideas-1801931">Creative Project Planning ideas</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=planthatprojectslideshare-090802194751-phpapp01&amp;stripped_title=creative-project-planning-ideas-1801931" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=planthatprojectslideshare-090802194751-phpapp01&amp;stripped_title=creative-project-planning-ideas-1801931" /><param name="allowfullscreen" value="true" /></object></div>
<p>Source: <a href="http://www.slideshare.net/joanna_maxwell/creative-project-planning-ideas-1801931">http://www.slideshare.net/joanna_maxwell/creative-project-planning-ideas-1801931</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paragarora.com/2009/08/planning-a-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
