<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns: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" version="2.0">

<channel>
	<title>Lifescaler</title>
	
	<link>http://lifescaler.com</link>
	<description>Scaling through (it) life</description>
	<pubDate>Fri, 24 Sep 2010 11:39:22 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Lifescaler" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="lifescaler" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>MySQL performance tunning thoughts</title>
		<link>http://lifescaler.com/2010/09/mysql-performance-tunning-thoughts/</link>
		<comments>http://lifescaler.com/2010/09/mysql-performance-tunning-thoughts/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 11:39:22 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=33</guid>
		<description><![CDATA[There are a lot of posts and discussions on the matter, but here are some tips:
- replacing distinct with a group by on an unique column can/would speed up the query quite a lot
- there is a variable called query_cache_min_res_unit. Use: show status like &#8216;qc%&#8217;; in the mysql console and especially check the Qcache_lowmem_prunes. If there are [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of posts and discussions on the matter, but here are some tips:</p>
<p>- replacing distinct with a group by on an unique column can/would speed up the query quite a lot</p>
<p>- there is a variable called <code class="literal"><a href="http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_query_cache_min_res_unit">query_cache_min_res_unit</a>. Use: show status like &#8216;qc%&#8217;; in the mysql console and especially check the Qcache_lowmem_prunes. If there are a lot of them, it means that the memory gets fragmented, as min_res_units are too big. Gives quite a big performance penalty, especially under a lot of concurrent requests and a cache invalidation</code></p>
<p>- some order by queries might be improved by using force index(&#8230;) with the proper index. Sometimes, it clears the filesort that gets used by default.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2010. |
	<a href="http://lifescaler.com/2010/09/mysql-performance-tunning-thoughts/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=UgfIQYfXmTU:tFFtkZ9_y6A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=UgfIQYfXmTU:tFFtkZ9_y6A:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=UgfIQYfXmTU:tFFtkZ9_y6A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=UgfIQYfXmTU:tFFtkZ9_y6A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=UgfIQYfXmTU:tFFtkZ9_y6A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=UgfIQYfXmTU:tFFtkZ9_y6A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=UgfIQYfXmTU:tFFtkZ9_y6A:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=UgfIQYfXmTU:tFFtkZ9_y6A:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=UgfIQYfXmTU:tFFtkZ9_y6A:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2010/09/mysql-performance-tunning-thoughts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Writing dynamic fixtures in Symfony</title>
		<link>http://lifescaler.com/2010/06/writing-dynamic-fixtures-in-symfony/</link>
		<comments>http://lifescaler.com/2010/06/writing-dynamic-fixtures-in-symfony/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 10:35:56 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[Symfony]]></category>

		<category><![CDATA[quickies]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=32</guid>
		<description><![CDATA[Whenever writing dynamic fixtures in Symfony, be careful about putting new line characters, after each property, but not after the main object declaration. Second, make sure you don&#8217;t start with any whitespace, and that the entire yml file does not contain unnecessary new lines or spaces. To debug, simply enable query logging in your database, [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever writing dynamic fixtures in Symfony, be careful about putting new line characters, after each property, but not after the main object declaration. Second, make sure you don&#8217;t start with any whitespace, and that the entire yml file does not contain unnecessary new lines or spaces. To debug, simply enable query logging in your database, and you&#8217;ll see that, when something is wrong, parts of the query will be mushed-up. Simple example (just look where &#8220;\n&#8221; is and where it isn&#8217;t):</p>
<p></p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2010/06/writing-dynamic-fixtures-in-symfony/">Writing dynamic fixtures in Symfony</a> (25 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2010. |
	<a href="http://lifescaler.com/2010/06/writing-dynamic-fixtures-in-symfony/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=_000lTCTmlU:UzcZ4bEGq8o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=_000lTCTmlU:UzcZ4bEGq8o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=_000lTCTmlU:UzcZ4bEGq8o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=_000lTCTmlU:UzcZ4bEGq8o:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=_000lTCTmlU:UzcZ4bEGq8o:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=_000lTCTmlU:UzcZ4bEGq8o:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=_000lTCTmlU:UzcZ4bEGq8o:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=_000lTCTmlU:UzcZ4bEGq8o:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=_000lTCTmlU:UzcZ4bEGq8o:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2010/06/writing-dynamic-fixtures-in-symfony/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Non linear management – fostering creativity / design driven development</title>
		<link>http://lifescaler.com/2010/02/non-linear-management-%e2%80%93-fostering-creativity-design-driven-development/</link>
		<comments>http://lifescaler.com/2010/02/non-linear-management-%e2%80%93-fostering-creativity-design-driven-development/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:01:10 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[Management]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[design driven development]]></category>

		<category><![CDATA[fostering creativity]]></category>

		<category><![CDATA[non-linear management]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=31</guid>
		<description><![CDATA[Please read the first post on the subject of non linear management before continuing.
Level 2 of this journey starts with learning how to setup an environment that would catalyze creativity. In other words, we’re going to talk about design driven development and most importantly, how to actually implement it in a corporate environment.
There has been [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Please read <a href="http://lifescaler.com/2010/01/nonlinear-management-creative-thinking/">the first post on the subject of non linear management</a> before continuing.</p>
<p class="MsoNormal">Level 2 of this journey starts with learning how to setup an environment that would catalyze creativity. In other words, we’re going to talk about design driven development and most importantly, how to actually implement it in a corporate environment.</p>
<p class="MsoNormal">There has been a lot of hype these past days about the launch of iPad and Apple’s decisions on this product. Whether or not this will be a successful device, it remains to be seen. However, the whole process of getting it to the market is really appealing. They are and have always been trend setters, and that is the basic, most important feature of design driven development. The idea behind it is very simple. Don’t use the old way, of market driven development, in which each new product or feature is a direct response of market needs. Instead, get a team of experts, create a community of requirements gathering – whether a closed or open one, whether a linear of hierarchical one, and use that to TELL your future customers what they want, give them what YOU think they need. It’s like going to a hotel and finding a free bottle of water on the table each day. You would never think to ask for/wish something like this, but if it’s there, your reaction towards that hotel is definitely more positive. Thus, you are in the avant-garde of creation, of satisfying your customers, and last but not least, of CREATING NEW NEEDS.</p>
<p class="MsoNormal"></p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2010/02/non-linear-management-%e2%80%93-fostering-creativity-design-driven-development/">Non linear management – fostering creativity / design driven development</a> (755 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2010. |
	<a href="http://lifescaler.com/2010/02/non-linear-management-%e2%80%93-fostering-creativity-design-driven-development/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=RNUTYHWVZFE:KE1PsJbAP9M:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=RNUTYHWVZFE:KE1PsJbAP9M:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=RNUTYHWVZFE:KE1PsJbAP9M:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=RNUTYHWVZFE:KE1PsJbAP9M:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=RNUTYHWVZFE:KE1PsJbAP9M:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=RNUTYHWVZFE:KE1PsJbAP9M:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=RNUTYHWVZFE:KE1PsJbAP9M:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=RNUTYHWVZFE:KE1PsJbAP9M:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=RNUTYHWVZFE:KE1PsJbAP9M:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2010/02/non-linear-management-%e2%80%93-fostering-creativity-design-driven-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nonlinear management: creative thinking</title>
		<link>http://lifescaler.com/2010/01/nonlinear-management-creative-thinking/</link>
		<comments>http://lifescaler.com/2010/01/nonlinear-management-creative-thinking/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:14:33 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[Management]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[creative thinking]]></category>

		<category><![CDATA[non-linear management]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=30</guid>
		<description><![CDATA[It&#8217;s times like these that should make people realize the importance of adaptability. But as I experience the stubbornness in keeping a dissipated conservative view on problems by most managers, I&#8217;m hoping to share some more light on what the vanguard of management is.
Firs topic, creative thinking. This concept has been around for a while, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s times like these that should make people realize the importance of adaptability. But as I experience the stubbornness in keeping a dissipated conservative view on problems by most managers, I&#8217;m hoping to share some more light on what the vanguard of management is.</p>
<p>Firs topic, creative thinking. This concept has been around for a while, but has yet to be adopted on large scale.  One could start wondering why is that? - why would people not see that getting the knowledge on how to come up with great ideas is equally, if not more important than building a business around them? Creative thinking is a bit of an abstract term. In business in general, in management in particular, it refers to the set of skills required to gain a holistic view of a problem. To do that, one must train his mind on several levels. Each level is hierarchically more important and as you reach the top, you are able to see at 360 degrees. But unlike in a forest, where you have to get to the top of the highest tree to get an overview of your situation, creative thinking is more of a pyramid, in which as you construct towards the top, you gain height and more overview based on what you&#8217;ve constructed underneath.<br />
</p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2010/01/nonlinear-management-creative-thinking/">Nonlinear management: creative thinking</a> (932 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2010. |
	<a href="http://lifescaler.com/2010/01/nonlinear-management-creative-thinking/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=bIZpezcScUU:hD7prcd1RfU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=bIZpezcScUU:hD7prcd1RfU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=bIZpezcScUU:hD7prcd1RfU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=bIZpezcScUU:hD7prcd1RfU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=bIZpezcScUU:hD7prcd1RfU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=bIZpezcScUU:hD7prcd1RfU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=bIZpezcScUU:hD7prcd1RfU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=bIZpezcScUU:hD7prcd1RfU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=bIZpezcScUU:hD7prcd1RfU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2010/01/nonlinear-management-creative-thinking/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When Doctrine leftJoin fails</title>
		<link>http://lifescaler.com/2009/10/when-doctrine-leftjoin-fails/</link>
		<comments>http://lifescaler.com/2009/10/when-doctrine-leftjoin-fails/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 12:17:20 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=29</guid>
		<description><![CDATA[I&#8217;ve stumbled across a weired problem in Symfony, using Doctrine. Whenever I wanted to use a leftJoin, stuff would fail. So, here are some tips to help you pass this problems:
1. Check that the leftJoin is issued like $q-&#62;(a.RelationshipName r);
where &#8220;a&#8221; is the root alias of the query, RelationshipName is the NAME of the relationship [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve stumbled across a weired problem in Symfony, using Doctrine. Whenever I wanted to use a leftJoin, stuff would fail. So, here are some tips to help you pass this problems:</p>
<p>1. Check that the leftJoin is issued like $q-&gt;(a.RelationshipName r);<br />
where &#8220;a&#8221; is the root alias of the query, RelationshipName is the NAME of the relationship defined in the yaml file of the database.</p>
<p>2. Make sure you use the actual relationship name from the yaml DB schema, and not the class name or something else. For instance, let&#8217;s say you have 2 classes: MysiteArticle and MysiteCategory.  To fetch articles, you would build your query like: Doctrine_Query::create()-&gt;from(&#8217;MysiteArticle a&#8217;);<br />
But, to fetch articles together with the category, you would do something like:<br />
Doctrine_Query::create()-&gt;from(&#8217;MysiteArticle a&#8217;)-&gt;leftJoin(&#8217;a.Category c&#8217;); if your relationship name is &#8220;Category&#8221;, in the schema.yml, or Doctrine_Query::create()-&gt;from(&#8217;MysiteArticle a&#8217;)-&gt;leftJoin(&#8217;a.MysiteCategory c&#8217;); if your relationship name is MysiteCategory.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2009. |
	<a href="http://lifescaler.com/2009/10/when-doctrine-leftjoin-fails/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=IQDw6I9h6Uk:lHJY0LjPEzU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=IQDw6I9h6Uk:lHJY0LjPEzU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=IQDw6I9h6Uk:lHJY0LjPEzU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=IQDw6I9h6Uk:lHJY0LjPEzU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=IQDw6I9h6Uk:lHJY0LjPEzU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=IQDw6I9h6Uk:lHJY0LjPEzU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=IQDw6I9h6Uk:lHJY0LjPEzU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=IQDw6I9h6Uk:lHJY0LjPEzU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=IQDw6I9h6Uk:lHJY0LjPEzU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2009/10/when-doctrine-leftjoin-fails/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Getting the cursor position inside a text-field and smart ways to build form validators</title>
		<link>http://lifescaler.com/2008/12/getting-the-cursor-position-inside-a-text-field-and-smart-ways-to-build-form-validators/</link>
		<comments>http://lifescaler.com/2008/12/getting-the-cursor-position-inside-a-text-field-and-smart-ways-to-build-form-validators/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:24:51 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=21</guid>
		<description><![CDATA[I have always wanted a nice clean way to build form validators based on any kind of rule i would choose, however most of the times I stumbled upon a simple problem: How to get the cursor position inside a text-field? It&#8217;s easy in Mozilla, but what about IE?
The challenge was weird, but I finally [...]]]></description>
			<content:encoded><![CDATA[<p>I have always wanted a nice clean way to build form validators based on any kind of rule i would choose, however most of the times I stumbled upon a simple problem: How to get the cursor position inside a text-field? It&#8217;s easy in Mozilla, but what about IE?<br />
The challenge was weird, but I finally got a way around, starting an idea <a href="http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript" target="_blank">here</a>.<br />
What I&#8217;ve done is I used Prototype to extend the Form Element Methods and simply add a version of selectionStart and selectionEnd for IE. After that, I just put them to work in a nice input wrapper class.<br />
</p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2008/12/getting-the-cursor-position-inside-a-text-field-and-smart-ways-to-build-form-validators/">Getting the cursor position inside a text-field and smart ways to build form validators</a> (463 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2008. |
	<a href="http://lifescaler.com/2008/12/getting-the-cursor-position-inside-a-text-field-and-smart-ways-to-build-form-validators/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=97oG3vAvWh0:hz_OjRXbyik:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=97oG3vAvWh0:hz_OjRXbyik:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=97oG3vAvWh0:hz_OjRXbyik:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=97oG3vAvWh0:hz_OjRXbyik:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=97oG3vAvWh0:hz_OjRXbyik:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=97oG3vAvWh0:hz_OjRXbyik:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=97oG3vAvWh0:hz_OjRXbyik:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=97oG3vAvWh0:hz_OjRXbyik:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=97oG3vAvWh0:hz_OjRXbyik:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2008/12/getting-the-cursor-position-inside-a-text-field-and-smart-ways-to-build-form-validators/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Javascript regular expressions quick guide</title>
		<link>http://lifescaler.com/2008/12/javascript-regular-expressions-quick-guide/</link>
		<comments>http://lifescaler.com/2008/12/javascript-regular-expressions-quick-guide/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 09:11:53 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[regular expressions]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=7</guid>
		<description><![CDATA[Quick quide to regular expressions in JavaScript
1. The form of an expression:
var a = /dog/gim
//dog = the expression to match, g = search all matches, i = case insensitive, m=multiple line
The cool thing is that /dog/ is an object, so you can, for example, do something like /dog/.test(something)

	(...)Read the rest of Javascript regular expressions quick [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Regular Expressions" href="http://www.flickr.com/photos/95118988@N00/912749911/" target="_blank"><img class="alignleft" style="border: 0; float: left;" src="http://farm2.static.flickr.com/1215/912749911_210a0c6bdb_m.jpg" border="0" alt="Regular Expressions" /></a>Quick quide to regular expressions in JavaScript</p>
<p>1. The form of an expression:<br />
var a = /dog/gim<br />
//dog = the expression to match, g = search all matches, i = case insensitive, m=multiple line<br />
The cool thing is that /dog/ is an object, so you can, for example, do something like /dog/.test(something)<br />
</p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2008/12/javascript-regular-expressions-quick-guide/">Javascript regular expressions quick guide</a> (504 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2008. |
	<a href="http://lifescaler.com/2008/12/javascript-regular-expressions-quick-guide/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=TeCyi94M1bY:bzQt3d_bsyE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=TeCyi94M1bY:bzQt3d_bsyE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=TeCyi94M1bY:bzQt3d_bsyE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=TeCyi94M1bY:bzQt3d_bsyE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=TeCyi94M1bY:bzQt3d_bsyE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=TeCyi94M1bY:bzQt3d_bsyE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=TeCyi94M1bY:bzQt3d_bsyE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=TeCyi94M1bY:bzQt3d_bsyE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=TeCyi94M1bY:bzQt3d_bsyE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2008/12/javascript-regular-expressions-quick-guide/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Database sharding unraveled - part IV</title>
		<link>http://lifescaler.com/2008/12/database-sharding-unraveled-part-iv/</link>
		<comments>http://lifescaler.com/2008/12/database-sharding-unraveled-part-iv/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 15:25:31 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Scalability tools]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[high scalability]]></category>

		<category><![CDATA[shard]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=27</guid>
		<description><![CDATA[Continuing the series about Database Sharding, I&#8217;m going to to talk about the software/hardware architecture. This post started from an excellent read, MySQL Database Scale-out and Replication for High Growth Businesses.

The first order of business is MySQL replication. Replication is needed to offer redundancy and to distribute even further the load on the system. In [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing the series about <strong>Database Sharding</strong>, I&#8217;m going to to talk about the software/hardware architecture. This post started from an excellent read, <a href="http://wikis.sun.com/display/BluePrints/MySQL+Database+Scale-Out+and+Replication+for+High+Growth+Businesses">MySQL Database Scale-out and Replication for High Growth Businesses</a>.</p>
<p><a title="MySQL logo" href="http://www.flickr.com/photos/66769343@N00/2758791348/" target="_blank"><img class="alignleft" style="border: 0pt none; float: left;" src="http://farm4.static.flickr.com/3003/2758791348_f5a33d4d6b_m.jpg" border="0" alt="MySQL logo" /></a></p>
<p>The first order of business is <strong>MySQL replication</strong>. Replication is needed to offer redundancy and to distribute even further the load on the system. In a typicall shard environment, the database is split among multiple servers, with data being unique to each server. If one of the servers goes down, all that data will become unavailable, and even though the system will continue working, parts of some scenarios will fail. This is where replication comes to stage.<br />
</p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2008/12/database-sharding-unraveled-part-iv/">Database sharding unraveled - part IV</a> (739 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2008. |
	<a href="http://lifescaler.com/2008/12/database-sharding-unraveled-part-iv/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=xx_lz8BeKys:s2QU_xnaRJo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=xx_lz8BeKys:s2QU_xnaRJo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=xx_lz8BeKys:s2QU_xnaRJo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=xx_lz8BeKys:s2QU_xnaRJo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=xx_lz8BeKys:s2QU_xnaRJo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=xx_lz8BeKys:s2QU_xnaRJo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=xx_lz8BeKys:s2QU_xnaRJo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=xx_lz8BeKys:s2QU_xnaRJo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=xx_lz8BeKys:s2QU_xnaRJo:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2008/12/database-sharding-unraveled-part-iv/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Smart trick to check some bottlenecks in your DB</title>
		<link>http://lifescaler.com/2008/10/smart-trick-to-check-some-bottlenecks-in-your-db/</link>
		<comments>http://lifescaler.com/2008/10/smart-trick-to-check-some-bottlenecks-in-your-db/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 09:20:52 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Scalability tools]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[sysadmin]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=24</guid>
		<description><![CDATA[There&#8217;s a nice tool called iostat to check the HDD related info, like number of reads/writes, amount of data processed, etc. It&#8217;s a must have for any good sysadmin, as it allows you to identify some of the bottlenecks in the DB.
Together with the vmstat tool - allows a user to see statistics for the [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a nice tool called <a title="iostat utility" href="http://manpages.ubuntu.com/manpages/intrepid/man1/iostat.html">iostat</a> to check the HDD related info, like number of reads/writes, amount of data processed, etc. It&#8217;s a must have for any good sysadmin, as it allows you to identify some of the bottlenecks in the DB.</p>
<p>Together with the <a href="http://manpages.ubuntu.com/manpages/hardy/man8/vmstat.html">vmstat </a>tool - allows a user to see statistics for the virtual memory usage - form a powerful duo to use, especially when your DB is running very slow, but the processors are not fully used.</p>
<p>The tools have enough explanations on the man pages.</p>
<p>So, the only thing remaining is to start them up:</p>
<p>Open 2 terminal windows. The first one would run something like <strong>iostat -dx 10</strong> (will display the device extended report, refreshed every 10 seconds - you can increase/decrease this number to suite your needs - too small is not very good, as it&#8217;s better to have stats over a longer period). The second one should run <strong>vmstat 10</strong>.</p>
<p>Last but not least, to get them you need to install the <a href="http://packages.ubuntu.com/intrepid/sysstat">sysstat</a> package (vmstat is in the procps package, installed by default). For ubuntu, type: <strong>sudo apt-get install sysstat</strong>.</p>
	<p></p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2008. |
	<a href="http://lifescaler.com/2008/10/smart-trick-to-check-some-bottlenecks-in-your-db/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=6NedFCv_S0w:NWOUQwwpPNM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=6NedFCv_S0w:NWOUQwwpPNM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=6NedFCv_S0w:NWOUQwwpPNM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=6NedFCv_S0w:NWOUQwwpPNM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=6NedFCv_S0w:NWOUQwwpPNM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=6NedFCv_S0w:NWOUQwwpPNM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=6NedFCv_S0w:NWOUQwwpPNM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=6NedFCv_S0w:NWOUQwwpPNM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=6NedFCv_S0w:NWOUQwwpPNM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2008/10/smart-trick-to-check-some-bottlenecks-in-your-db/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Database sharding unraveled - part III</title>
		<link>http://lifescaler.com/2008/06/database-sharding-unraveled-part-iii/</link>
		<comments>http://lifescaler.com/2008/06/database-sharding-unraveled-part-iii/#comments</comments>
		<pubDate>Mon, 16 Jun 2008 16:56:24 +0000</pubDate>
		<dc:creator>Bogdan</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Scalability tools]]></category>

		<category><![CDATA[database sharding]]></category>

		<category><![CDATA[functional partitioning]]></category>

		<category><![CDATA[high scalability]]></category>

		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://lifescaler.com/?p=20</guid>
		<description><![CDATA[Before continuing, please read the first parts of the database sharding adventure:
Database sharding unraveled - part I
Database sharding unraveled - part II

Chapter 1. The small guys
Before really diving into high scalability principles, I want to take a moment to talk about why database sharding has an important role even in small startups or medium sized [...]]]></description>
			<content:encoded><![CDATA[<p>Before continuing, please read the first parts of the database sharding adventure:<br />
<a rel="bookmark" href="../2008/04/database-sharding-unraveled-part-i/">Database sharding unraveled - part I</a><br />
<a rel="bookmark" href="../2008/04/database-sharding-unraveled-part-ii/">Database sharding unraveled - part II<br />
</a></p>
<p>Chapter 1. The small guys</p>
<p>Before really diving into high scalability principles, I want to take a moment to talk about why database sharding has an important role even in small startups or medium sized web-sites (5 - 30k unique visitors/day).</p>
<p>It is equally important and benefic for a smaller web business to prepare itself from the beginning to tackle large amounts of users cheap. If it&#8217;s not obvious enough, think about what happens to a web-page that gets some plain old Digg attention. The server quickly collapses and the user experience immediately turns from positive to mega negative.<br />
As I&#8217;ve explained before, the whole purpose of sharding is to be able to use an unlimited number of cheap machines topped by an open-source database. As experience taught me, the web server will rarely die. Instead, the DB server will choke easily when having to deal with many simultaneous connections.<br />
The database doesn&#8217;t even have to be very big.</p>
<p></p>
	<p>(...)<br/>Read the rest of <a href="http://lifescaler.com/2008/06/database-sharding-unraveled-part-iii/">Database sharding unraveled - part III</a> (717 words)</p>
	<hr noshade style="margin:0;height:1px" />
	<small><p>&copy; Bogdan for <a href="http://lifescaler.com">Lifescaler</a>, 2008. |
	<a href="http://lifescaler.com/2008/06/database-sharding-unraveled-part-iii/">Permalink</a></small></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Lifescaler?a=CegWx10SGr0:2iLopP9mPt0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=CegWx10SGr0:2iLopP9mPt0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=CegWx10SGr0:2iLopP9mPt0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=CegWx10SGr0:2iLopP9mPt0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=CegWx10SGr0:2iLopP9mPt0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=CegWx10SGr0:2iLopP9mPt0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=CegWx10SGr0:2iLopP9mPt0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/Lifescaler?i=CegWx10SGr0:2iLopP9mPt0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Lifescaler?a=CegWx10SGr0:2iLopP9mPt0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/Lifescaler?d=TzevzKxY174" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://lifescaler.com/2008/06/database-sharding-unraveled-part-iii/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

