<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;D0IFSHY7fCp7ImA9WhBaEEg.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126</id><updated>2013-05-20T16:11:59.804+03:00</updated><category term="Personal" /><category term="Analytics" /><category term="Performance" /><category term="Copyright" /><category term="MySQL" /><category term="Mobile web" /><category term="Review" /><category term="UX" /><category term="Magento" /><category term="Security" /><category term="Apple" /><category term="Programming" /><category term="Business" /><category term="Productivity" /><category term="Clean coding" /><category term="SEO" /><category term="Git" /><category term="Linux" /><category term="Mac" /><category term="Tools" /><category term="Spam" /><category term="Buzz" /><category term="TYPO3" /><category term="Putin" /><category term="Shell tricks" /><category term="ExtJS" /><title>Dmitry Dulepov</title><subtitle type="html">Being smart and efficient. Building life for the greater good.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.dmitry-dulepov.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>208</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/dmitry-dulepov" /><feedburner:info uri="dmitry-dulepov" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C04FSHcyeip7ImA9WhBbFE4.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-1256892211823588224</id><published>2013-05-13T10:58:00.001+03:00</published><updated>2013-05-13T10:58:39.992+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-05-13T10:58:39.992+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><title>Not a TYPO3 core team member any more</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Just read that I am &lt;a href="http://forge.typo3.org/projects/show/typo3v4-core" target="_blank"&gt;not a TYPO3 core member&lt;/a&gt; any more. At least, I know it now.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/FVKqrbsXf88" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/1256892211823588224/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/05/not-typo3-core-team-member-any-more.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/1256892211823588224?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/1256892211823588224?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/FVKqrbsXf88/not-typo3-core-team-member-any-more.html" title="Not a TYPO3 core team member any more" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/05/not-typo3-core-team-member-any-more.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04FSX09eSp7ImA9WhBQFkU.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-517775036702295588</id><published>2013-03-19T11:38:00.001+02:00</published><updated>2013-03-19T11:38:38.361+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-19T11:38:38.361+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><title>A PHP client for TYPO3 TER</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
A useful piece of software from Elmar Hinz: a command line utility for TER, which can upload TYPO3 CMS extensions to TER and do many more, which you cannot do in the TYPO3 Extension Manager.&lt;br /&gt;
&lt;br /&gt;
Get it &lt;a href="http://t3elmar.github.com/Ext/" target="_blank"&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/eMr0y_homw8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/517775036702295588/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/03/a-php-client-for-typo3-ter.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/517775036702295588?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/517775036702295588?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/eMr0y_homw8/a-php-client-for-typo3-ter.html" title="A PHP client for TYPO3 TER" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/03/a-php-client-for-typo3-ter.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYERHo5fip7ImA9WhBQFkU.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3069941994433885474</id><published>2013-03-19T10:51:00.002+02:00</published><updated>2013-03-19T10:51:45.426+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-19T10:51:45.426+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><title>How to calculate 1+1 using the “nice code™”</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
&lt;pre style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); color: #333333; font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin-bottom: 15px; margin-top: 15px; overflow: auto; padding: 6px 10px;"&gt;&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Number\NumberCollection&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Number\SimpleNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Number\CollectionItemNumberProxy&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Parser\SimpleNumberStringParser&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Iterator\CallbackIterator&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Operator\AdditionOperator&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Operation\ArithmeticOperation&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Operation\OperationStream&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Engine&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Calcul\Calcul&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;
&lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;use&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimplePHPEasyPlus\Calcul\CalculRunner&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;;&lt;/span&gt;


&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberCollection&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;NumberCollection&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;();&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberParser&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimpleNumberStringParser&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;();&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$firstParsedNumber&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberParser&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;parse&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;"&gt;'1'&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;
&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$firstNumber&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimpleNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$firstParsedNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;
&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$firstNumberProxy&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;CollectionItemNumberProxy&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$firstNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberCollection&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;add&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$firstNumberProxy&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$secondParsedNumber&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberParser&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;parse&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;"&gt;'1'&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;
&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$secondNumber&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;SimpleNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$secondParsedNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;
&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$secondNumberProxy&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;CollectionItemNumberProxy&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$secondNumber&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberCollection&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;add&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$secondNumberProxy&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$addition&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;AdditionOperator&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="s1" style="border: 0px; color: #dd1144; margin: 0px; padding: 0px;"&gt;'SimplePHPEasyPlus\Number\SimpleNumber'&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$operation&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;ArithmeticOperation&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$addition&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$engine&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;Engine&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$operation&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$calcul&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;Calcul&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$engine&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;,&lt;/span&gt; &lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numberCollection&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$runner&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="k" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;new&lt;/span&gt; &lt;span class="nx" style="border: 0px; margin: 0px; padding: 0px;"&gt;CalculRunner&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;();&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$runner&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;run&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;(&lt;/span&gt;&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$calcul&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;);&lt;/span&gt;

&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$result&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$calcul&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;getResult&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;();&lt;/span&gt;
&lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$numericResult&lt;/span&gt; &lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;=&lt;/span&gt; &lt;span class="nv" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;$result&lt;/span&gt;&lt;span class="o" style="border: 0px; font-weight: bold; margin: 0px; padding: 0px;"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na" style="border: 0px; color: teal; margin: 0px; padding: 0px;"&gt;getValue&lt;/span&gt;&lt;span class="p" style="border: 0px; margin: 0px; padding: 0px;"&gt;();&lt;/span&gt; &lt;span class="c1" style="border: 0px; color: #999988; font-style: italic; margin: 0px; padding: 0px;"&gt;// 2&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;br /&gt;
Example from &lt;a href="https://github.com/Herzult/SimplePHPEasyPlus"&gt;https://github.com/Herzult/SimplePHPEasyPlus&lt;/a&gt;, thanks to Mathias Schreiber for the link :)&lt;br /&gt;
&lt;br /&gt;
Conclusions? Do not overdo it. Simplicity will save the world. Just do a "1+1", not the framework for calculating it.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/-IUlieVsCf8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3069941994433885474/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/03/how-to-calculate-11-using-nice-code.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3069941994433885474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3069941994433885474?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/-IUlieVsCf8/how-to-calculate-11-using-nice-code.html" title="How to calculate 1+1 using the “nice code™”" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/03/how-to-calculate-11-using-nice-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUMSXgzeSp7ImA9WhBQEE0.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-4691870663492431129</id><published>2013-03-11T14:17:00.001+02:00</published><updated>2013-03-11T14:18:08.681+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-11T14:18:08.681+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><category scheme="http://www.blogger.com/atom/ns#" term="Clean coding" /><category scheme="http://www.blogger.com/atom/ns#" term="Performance" /><title>Bad coding</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Never code like this:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;function hasContentElements($pageId) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; $rows = $GLOBALS['TYPO3_DB']-&amp;gt;exec_SELECTgetRows('*',&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;'pages', 'uid=' . $pageId ...);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; return $rows;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;function&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;processContentElements($contentElements) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; foreach ($contentElements as $contentElement) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; }&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;$hasContentElements = hasContentElements($pageId);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;if ($hasContentElements) {&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; processContentElements($hasContentElements);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Why is this bad? Because:&lt;br /&gt;
&lt;div style="text-align: left;"&gt;
&lt;/div&gt;
&lt;ul style="text-align: left;"&gt;
&lt;li&gt;Function name &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;hasContentElements&lt;/span&gt;&amp;nbsp;suggests that it only checks that the page has content elements. It should not retrieve them. Imagine if there are 100 elements on the page. How much memory would it take just for a simple check like that?&lt;/li&gt;
&lt;li&gt;The variable is named improperly too. "has" means a boolean value!&lt;/li&gt;
&lt;li&gt;Using the variable with such name is misleading here. Unless you see and remember what the function does, you can make wrong assumptions about the logic of the&amp;nbsp;&lt;span style="font-family: Courier New, Courier, monospace;"&gt;processContentElements&lt;/span&gt; function.&lt;/li&gt;
&lt;/ul&gt;
When coding, please, choose proper names for all your code elements. If you have to check for existence of database records, do not fetch them, use &lt;span style="font-family: Courier New, Courier, monospace;"&gt;COUNT(*)&lt;/span&gt; instead. That makes a great difference in terms of performance and memory usage.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/QUof2n_ALXA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/4691870663492431129/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/03/bad-coding.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/4691870663492431129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/4691870663492431129?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/QUof2n_ALXA/bad-coding.html" title="Bad coding" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/03/bad-coding.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEMEQ3o6fyp7ImA9WhBRGUQ.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-1244768989792017437</id><published>2013-03-11T11:00:00.000+02:00</published><updated>2013-03-11T11:00:02.417+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-11T11:00:02.417+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Git" /><title>Showing the current Git branch in a shell prompt</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
The following commands in ~/.bash_profile will show you on what Git branch you are and if there are dirty files there:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;source /opt/local/share/doc/git-core/contrib/completion/git-completion.bash&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;source /opt/local/share/git-core/git-prompt.sh&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;GIT_PS1_SHOWDIRTYSTATE=true&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;export PS1='\h:\w \[\033[1;36m\]$(__git_ps1 "[%s] ")\[\033[1;37m\]\$ '&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This will show the branch in the cyan color and only in the directory, where you checked out the project. If there are dirty files, it will show an asterisk after the branch name.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;&lt;span style="color:white"&gt;Atlas:~/Projects/TYPO3/TYPO3_6-0 &lt;/span&gt;&lt;span style="color:cyan"&gt;[issue_46000 *]&lt;/span&gt;&lt;span style="color:white"&gt; $&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/sHioaPSjqSM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/1244768989792017437/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/03/showing-current-git-branch-in-shell.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/1244768989792017437?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/1244768989792017437?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/sHioaPSjqSM/showing-current-git-branch-in-shell.html" title="Showing the current Git branch in a shell prompt" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/03/showing-current-git-branch-in-shell.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIHQn87eyp7ImA9WhBRE0Q.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3290841130256128400</id><published>2013-03-04T12:38:00.003+02:00</published><updated>2013-03-04T12:38:53.103+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-04T12:38:53.103+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>Quote #1</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
"There's nothing of any importance in life – except how well you do your work. Nothing. Only that. Whatever else you are, will come from that. It's the only measure of human value."
&lt;br /&gt;
&lt;div style="text-align: right;"&gt;
Francisco d'Anconia&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/MAVbk4_o7Zc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3290841130256128400/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/03/quote-1.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3290841130256128400?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3290841130256128400?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/MAVbk4_o7Zc/quote-1.html" title="Quote #1" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/03/quote-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QNR3Y4fyp7ImA9WhBREU8.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3882675782392883342</id><published>2013-03-01T10:09:00.003+02:00</published><updated>2013-03-01T10:09:56.837+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-01T10:09:56.837+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><title>TypoScript editing plugin for PhpStrom</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;a href="http://plugins.jetbrains.com/plugin/?webide&amp;amp;pluginId=6965" target="_blank"&gt;Here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Thanks to Alexey Gospachenko for the link.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/z_lTcXJkeVw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3882675782392883342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/03/typoscript-editing-plugin-for-phpstrom.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3882675782392883342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3882675782392883342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/z_lTcXJkeVw/typoscript-editing-plugin-for-phpstrom.html" title="TypoScript editing plugin for PhpStrom" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/03/typoscript-editing-plugin-for-phpstrom.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8CQn07eCp7ImA9WhBREEg.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3861362351849255398</id><published>2013-02-28T15:41:00.000+02:00</published><updated>2013-02-28T15:41:03.300+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-28T15:41:03.300+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Buzz" /><title>Blah-blah #3</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;br /&gt;
One wife tells her husband (a programmer): "Go to the shop and buy sausages. If there are eggs, buy ten". The programmer comes to the shop, dialog:&lt;br /&gt;
- Do you have eggs?&lt;br /&gt;
- Yes.&lt;br /&gt;
- Than give me ten sausages.&lt;br /&gt;
&lt;br /&gt;
Yep. We really think like that, dear wives :)&lt;br /&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/xJXSkrDxwBU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3861362351849255398/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/blah-blah-3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3861362351849255398?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3861362351849255398?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/xJXSkrDxwBU/blah-blah-3.html" title="Blah-blah #3" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/blah-blah-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMERXs_fyp7ImA9WhBSGUk.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3100755052208558488</id><published>2013-02-27T09:00:00.000+02:00</published><updated>2013-02-27T09:00:04.547+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-27T09:00:04.547+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>Speeding up OpenOffice/LibreOffice</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I had major problems with OpenOffice and its clone: LibreOffice. When I launched OpenOffice, it took about a minute for it to start. With LibreOffice the start was fast but opening each document took about 15 seconds of waiting.&lt;br&gt;
&lt;br&gt;
I took OS X Activity Monitor and found that both apps spend all this time waiting in a call to &lt;span style="font-family: Courier New, Courier, monospace;"&gt;gethostbyname&lt;/span&gt;. The call before that was a call to get the name of the local host. So both apps first tried to get the name of the local host and than to resolve its IP address and that did not work well.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;a href="http://www.dmitry-dulepov.com/2013/02/speeding-up-openofficelibreoffice.html#more"&gt;Read more »&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/96dAiUnNy_U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3100755052208558488/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/speeding-up-openofficelibreoffice.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3100755052208558488?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3100755052208558488?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/96dAiUnNy_U/speeding-up-openofficelibreoffice.html" title="Speeding up OpenOffice/LibreOffice" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/speeding-up-openofficelibreoffice.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MMQnk8eCp7ImA9WhBSGEs.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5718996891018212776</id><published>2013-02-26T09:58:00.000+02:00</published><updated>2013-02-26T09:58:03.770+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-26T09:58:03.770+02:00</app:edited><title>Some photos of Uetliberg, Zurich, Switzerland</title><content type="html">&lt;img border="0" height="426" src="http://sphotos-f.ak.fbcdn.net/hphotos-ak-ash3/861473_4538629026639_1528980935_o.jpg" width="640" /&gt;
&lt;br /&gt;&lt;br /&gt;
You can check some of my photos in &lt;a href="http://www.facebook.com/media/set/?set=a.4538625986563.143195.1318542490&amp;amp;type=1&amp;amp;l=1b138feb54" target="_blank"&gt;this album&lt;/a&gt; on Facebook.
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/zzIWZfo_SRM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5718996891018212776/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/some-photos-of-uetliberg-zurich.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5718996891018212776?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5718996891018212776?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/zzIWZfo_SRM/some-photos-of-uetliberg-zurich.html" title="Some photos of Uetliberg, Zurich, Switzerland" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/some-photos-of-uetliberg-zurich.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0cCR3wzeyp7ImA9WhBSGEs.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-8988183367722189124</id><published>2013-02-26T09:51:00.000+02:00</published><updated>2013-02-26T09:51:06.283+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-26T09:51:06.283+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>Google Chrome and Apple Time Capsule</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
If you back up your Mac using Apple Time Capsule and you use Google Chrome, you will notice that Time Machine sends around 300MB to the Time Capsule each time. This is because Google Chrome changes a lot of large file each time when you navigate to a new page.&lt;br /&gt;
&lt;br /&gt;
To Solve the issue, go to the Time Machine properties and exclude ~/Library/Application Support/Google/Chrome from the backup. If you do not like the idea to loose data, just sign in to your Google Account with Chrome and it will ask you to set up a sync. Sync will send most of your data Chrome to Google and it can be stored in the encrypted form if you tick the corresponding box in settings. If you do not mind that, you can restore your Chrome in case of failure.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/VRzl9WW3KKM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/8988183367722189124/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/google-chrome-and-apple-time-capsule.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/8988183367722189124?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/8988183367722189124?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/VRzl9WW3KKM/google-chrome-and-apple-time-capsule.html" title="Google Chrome and Apple Time Capsule" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/google-chrome-and-apple-time-capsule.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EMSXs7eSp7ImA9WhBSGE0.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-6648192788712077093</id><published>2013-02-25T18:28:00.001+02:00</published><updated>2013-02-25T18:28:08.501+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-25T18:28:08.501+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Buzz" /><title>Blah-blah #2</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
– Why is it called "beta"?&lt;br /&gt;
– 'Cause it's beta than nothin'.&lt;br /&gt;
&lt;br /&gt;
Sorry. Could not resist.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/OOuVJ_0EkP4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/6648192788712077093/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/blah-blah-2.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/6648192788712077093?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/6648192788712077093?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/OOuVJ_0EkP4/blah-blah-2.html" title="Blah-blah #2" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/blah-blah-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQGQHw5fyp7ImA9WhBSF08.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-8767481206169390358</id><published>2013-02-24T19:52:00.000+02:00</published><updated>2013-02-24T19:52:01.227+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-24T19:52:01.227+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Buzz" /><title>Blah-blah...</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
From one framework docs: "Before describing the configuration aspects of components (...), component types and implementations are described, since it is aspects of the component type that are configured by components – and the configurable aspects are defined by the component type.".&lt;br /&gt;
&lt;br /&gt;
Reminds me something. Just can't remember what...&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/I5cNjSBrkCs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/8767481206169390358/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/blah-blah.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/8767481206169390358?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/8767481206169390358?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/I5cNjSBrkCs/blah-blah.html" title="Blah-blah..." /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/blah-blah.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDRHY8cCp7ImA9WhBSFE4.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3105999657021874158</id><published>2013-02-21T09:04:00.001+02:00</published><updated>2013-02-21T09:04:35.878+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-21T09:04:35.878+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Shell tricks" /><title>SVN: how to see only modified files</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
When you work with a command line SVN client, you may find its output too clattered, especially if you have a lot of externals or generated files that you do not commit (such as in typo3temp/ or uploads/).&lt;br /&gt;
&lt;br /&gt;
To see only modified files, you can use &lt;span style="font-family: Courier New, Courier, monospace;"&gt;egrep&lt;/span&gt; like this:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;svn st | egrep '^M '&lt;/span&gt;&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/NYo6EjlnGcE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3105999657021874158/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/svn-how-to-see-only-modified-files.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3105999657021874158?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3105999657021874158?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/NYo6EjlnGcE/svn-how-to-see-only-modified-files.html" title="SVN: how to see only modified files" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/svn-how-to-see-only-modified-files.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkEGSHs4fCp7ImA9WhBTGEk.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-2193915040947831670</id><published>2013-02-14T13:17:00.000+02:00</published><updated>2013-02-14T13:17:09.534+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-14T13:17:09.534+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><title>TYPO3 at GitHub</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Some of you may know that there is a &lt;a href="https://github.com/TYPO3/TYPO3v4-Core"&gt;mirror&lt;/a&gt; of the official TYPO3 GIT repository at GitHub. It is quite difficult recently to get patches through the official review system, so I decided to work on GitHub from now on. &lt;a href="https://github.com/dmitryd/TYPO3v4-Core"&gt;Here is my fork&lt;/a&gt; of the official repository. I plan to add there patches I do for Snowflake as well as my own enhancements. I will merge official code into this fork from time to time.&lt;br /&gt;
&lt;br /&gt;
This is &lt;u&gt;&lt;b&gt;not&lt;/b&gt;&lt;/u&gt; an attempt to fork entire project and go "my own way". This is an attempt to enhance TYPO3 using the patches that do not pass the official review system. I plan to do performance improvements as well as other enhancements. Think of it as of an experiment :)&lt;br /&gt;
&lt;br /&gt;
I will continue patch reviews in TYPO3 Gerrit as before.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/9wmbB1QDE10" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/2193915040947831670/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/typo3-at-github.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/2193915040947831670?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/2193915040947831670?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/9wmbB1QDE10/typo3-at-github.html" title="TYPO3 at GitHub" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/typo3-at-github.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MGQ3k6eCp7ImA9WhBTFks.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5127613794496023706</id><published>2013-02-12T12:37:00.000+02:00</published><updated>2013-02-12T12:37:02.710+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-12T12:37:02.710+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>Speeding up Samba access in OS X</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
The following Terminal commands will help you to speed up the access to Samba shares. Note that one of command will report a error in recent OS X versions. You can ignore that error safely.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.mssdflt=1460&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.sendspace=262144&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.recvspace=262144&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.udp.recvspace=74848&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.udp.maxdgram=65535&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.rfc1323=1&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.newreno=1&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.always_keepalive=1&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.keepidle=3600&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.keepintvl=150&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.slowstart_flightsize=4&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.strict_rfc1948=1&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Courier New, Courier, monospace;"&gt;sudo sysctl -w net.inet.tcp.delayed_ack=1&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/PbeuvFjn6Bs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5127613794496023706/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2013/02/speeding-up-samba-access-in-os-x.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5127613794496023706?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5127613794496023706?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/PbeuvFjn6Bs/speeding-up-samba-access-in-os-x.html" title="Speeding up Samba access in OS X" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2013/02/speeding-up-samba-access-in-os-x.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04BRHs7eSp7ImA9WhJbEU4.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-8402221537164653396</id><published>2012-09-20T13:12:00.002+03:00</published><updated>2012-09-20T13:12:35.501+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-20T13:12:35.501+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Business" /><title>Developers and business</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Developers are bad in business questions if they work for a company. However they become much better in business if they become freelancers. Freelancers have to think about technical skills and selling their services while company developers do not have to bother with selling at all and mildly interested in improving their skills (it does not directly correspond to their income).&lt;br /&gt;
&lt;br /&gt;
Conclusion: a typical freelance developer should be better than a typical company developer.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/zSm2qbRQdFQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/8402221537164653396/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/09/developers-and-business.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/8402221537164653396?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/8402221537164653396?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/zSm2qbRQdFQ/developers-and-business.html" title="Developers and business" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/09/developers-and-business.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUESXY-eCp7ImA9WhJVFkQ.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-1389340189364368560</id><published>2012-09-03T21:50:00.000+03:00</published><updated>2012-09-03T21:50:08.850+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-09-03T21:50:08.850+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Mac" /><title>Creating OS X recovery partion, part 3</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Thanks to &lt;a href="http://www.dmitry-dulepov.com/2011/09/how-to-create-mac-os-x-lion-recovery.html?showComment=1346693041598#c6474076361090321472"&gt;Antonin Hildebrand&lt;/a&gt;, who found a method to do it in a &lt;a href="http://hints.binaryage.com/recover-lost-recovery-hd-for-filevault/"&gt;much easier way&lt;/a&gt; to recreate the OS X recovery partition than I &lt;a href="http://www.dmitry-dulepov.com/2011/09/mac-recovery-partion-revisited.html"&gt;described&lt;/a&gt; earlier.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/0BhfWYK_rwQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/1389340189364368560/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/09/creating-os-x-recovery-partion-part-3.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/1389340189364368560?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/1389340189364368560?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/0BhfWYK_rwQ/creating-os-x-recovery-partion-part-3.html" title="Creating OS X recovery partion, part 3" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/09/creating-os-x-recovery-partion-part-3.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINR307eCp7ImA9WhNQGUQ.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-3854055915449847943</id><published>2012-08-06T16:06:00.002+03:00</published><updated>2012-11-27T08:43:16.300+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-11-27T08:43:16.300+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>Sudden hue shift to blue in Mountain Lion</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Today I noticed that running Google Chrome in Mountain Lion causes hue shift to blue on my MacBook Pro LCD display. I work with photos a lot and have a calibrated display. Sudden hue shift is very&amp;nbsp;noticeable&amp;nbsp;when you are used to work with calibrated, neutral gray monitors.&lt;br /&gt;
&lt;br /&gt;
It seems that issue is specific to Mountain Lion only and it is caused when the system switches between integrated Intel and more powerful ATI or Nvidia graphics cards. There are two threads about this: &lt;a href="http://forums.macrumors.com/showthread.php?t=1403675" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="https://groups.google.com/a/chromium.org/group/chromium-bugs/browse_thread/thread/a3ad7f36b6e418a6?hl=en&amp;amp;noredirect=true&amp;amp;pli=1" target="_blank"&gt;here&lt;/a&gt;. At the end of the first link there is a post that reseting PRAM fixes the issue. I tried that but I cannot yet confirm if it fixes the issue or not. One thing I noticed is that after reseting PRAM my MBP does not switch to the advanced graphics when I run Twitter or Chrome. Before resting any of this apps were causing such switching.&lt;br /&gt;
&lt;br /&gt;
In case if you have hue shift issue, I would appreciate if you write that in comments. There is no need to write if you do NOT have the issue :)&lt;br /&gt;
&lt;br /&gt;
Thank you!&lt;br /&gt;
&lt;br /&gt;
Update: more links about the issue:&lt;br /&gt;
&lt;a href="https://discussions.apple.com/thread/4145724?start=0&amp;amp;tstart=0" target="_blank"&gt;Apple communitiy&lt;/a&gt;&amp;nbsp;#1&lt;br /&gt;
&lt;a href="https://discussions.apple.com/thread/4145724?start=0&amp;amp;tstart=0" target="_blank"&gt;Apple community #2&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://discussions.apple.com/thread/4188387?start=0&amp;amp;tstart=0" target="_blank"&gt;Apple community #3&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://discussions.apple.com/thread/4134946?start=0&amp;amp;tstart=0" target="_blank"&gt;Apple community #4&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://forums.macrumors.com/showthread.php?t=1411736" target="_blank"&gt;MacRumors thread&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
So it is a Mountain Lion bug.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[Update, Aug 14, 2012]&lt;/b&gt; The issue is fixed in OS X 10.8.1 (developer preview build&amp;nbsp;12B13).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[Update, Sept 02, 2012]&lt;/b&gt;&amp;nbsp;The issue is back in OS X 10.8.2 (developer preview build&amp;nbsp;12C31a).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;[Update, Nov 27, 2012]&lt;/b&gt;&amp;nbsp;It appears that the problem is specific to MacBook Pros with SSD. Looks like they load too fast. OS X runs multiple tasks in parallel and it tries to load the correct color profile into the discrete card too early. To solve the issue, log out from the current user and log in. Hue will disappear.&lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/HbsQgeez8O4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/3854055915449847943/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/08/sudden-hue-shift-to-blue-in-mountain.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3854055915449847943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/3854055915449847943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/HbsQgeez8O4/sudden-hue-shift-to-blue-in-mountain.html" title="Sudden hue shift to blue in Mountain Lion" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/08/sudden-hue-shift-to-blue-in-mountain.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMGRng_eCp7ImA9WhJXEkg.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5612994597705024015</id><published>2012-08-03T12:50:00.002+03:00</published><updated>2012-08-06T16:07:07.640+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-06T16:07:07.640+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><title>Quick tip: magic methods and PhpStorm</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
If you use PhpStorm and add magic methods to a class (__get/__set/__call), you may notice that PhpStorm generates warnings for undefined class attributes and methods. A typical example is when you implement automatic getters and setters for protected instance variables:&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href="http://www.dmitry-dulepov.com/2012/08/quick-tip-magic-methods-and-phpstorm.html#more"&gt;Read more »&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/not_kSUfttc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5612994597705024015/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/08/quick-tip-magic-methods-and-phpstorm.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5612994597705024015?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5612994597705024015?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/not_kSUfttc/quick-tip-magic-methods-and-phpstorm.html" title="Quick tip: magic methods and PhpStorm" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/08/quick-tip-magic-methods-and-phpstorm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMHSHg6fCp7ImA9WhJXEkg.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5259618841234354500</id><published>2012-07-06T13:40:00.000+03:00</published><updated>2012-08-06T16:07:19.614+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-06T16:07:19.614+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Apple" /><title>OS X Lion and local DNS issues</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
Many people use their Macs for local development. They have Apache web server running on their computers. This works great. However there is an issue with Mac OS X Lion, which causes DNS issues with &amp;quot;.local&amp;quot; domains. If you use &amp;quot;.local&amp;quot; for development, you may notice that your local Apache seem to answer very slow (5 seconds or so). In fact, it is not Apache, it is DNS lookups that take most of the time. In this article I collected several ways to solve the issue.&lt;br&gt;
&lt;br&gt;
The are several reasons for this. Therefore there is no one single solution for all cases. You can to try one or more or even all to find what works for you.&lt;br&gt;
&lt;br&gt;
&lt;/div&gt;&lt;a href="http://www.dmitry-dulepov.com/2012/07/os-x-lion-and-local-dns-issues.html#more"&gt;Read more »&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/VpIsUamYVkA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5259618841234354500/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/07/os-x-lion-and-local-dns-issues.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5259618841234354500?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5259618841234354500?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/VpIsUamYVkA/os-x-lion-and-local-dns-issues.html" title="OS X Lion and local DNS issues" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/07/os-x-lion-and-local-dns-issues.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQGRnw-eip7ImA9WhVXEkw.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5943686523770218562</id><published>2012-04-12T10:55:00.000+03:00</published><updated>2012-04-12T10:55:27.252+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-04-12T10:55:27.252+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><title>When not to use typoLink</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
For a long time I tell everybody to use typoLink to create links inside TYPO3.&lt;br /&gt;
&lt;br /&gt;
A “go”:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$url = $this-&amp;gt;cObj-&amp;gt;typoLink_URL(array(
    'parameter' =&amp;gt; $GLOBALS['TSFE']-&amp;gt;id
));&lt;/pre&gt;
&lt;br /&gt;
A “no go”:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

&lt;/pre&gt;
But there is one case when you absolutely must not use typoLink to create the URL. It is when the URL points to the eID script. Why? Because there is no resolving of the speaking URL inside eID anyway. So it is a complete waste of time and memory to have something like &lt;code&gt;/path/to/my/news/page/news/how-i-bought-a-car.html?eID=tx_myext_eid.&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Just do it like this:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;$url = t3lib_div::locationHeaderUrl('index.php?eID=tx_myext_eid').&lt;/pre&gt;
&lt;br /&gt;
That's the right way.&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/2lZD7h9CtGg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5943686523770218562/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/04/when-not-to-use-typolink.html#comment-form" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5943686523770218562?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5943686523770218562?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/2lZD7h9CtGg/when-not-to-use-typolink.html" title="When not to use typoLink" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>5</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/04/when-not-to-use-typolink.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ICRHo5fip7ImA9WhVTGU4.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-7917676669803187700</id><published>2012-03-05T09:12:00.001+02:00</published><updated>2012-03-05T11:26:05.426+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-03-05T11:26:05.426+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Putin" /><title>Why did 65% of russians vote for Putin?</title><content type="html">&lt;p&gt;This article is unusual for my blog because I never talk politics here. I consider this article to be one of the most important articles in my blog and my life.&lt;/p&gt;
&lt;h3&gt;Why did I write this article?&lt;/h3&gt;
&lt;p&gt;On December 7th, 2011 FoxNews showed a report about protesters in Moscow. Here it is:&lt;/p&gt;
&lt;iframe width="560" height="315" src="http://www.youtube.com/embed/tsqdzV_ccNg" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;p&gt;The problem is: it is not Russia in the video. It is Greece. Fox News lied to its viewers. Same do other news agencies. They show you what you should see, not what really happens in Russia. They tell you what you should believe. And usually you do. Now read the truth.&lt;/p&gt;
&lt;p&gt;I am russian. I lived in Russia until I was 27, than I emigrated (you will understand later why). But I am still russian, I follow every event that happens in Russia, I visit it regularly and I have relatives there. Most likely I will return to Russia in the near future. If you want to know the truth about Putin, read on. I must warn that this article represents my own views and talks about the history as I remember and know it. Some bits can be incorrect but general picture should be right.&lt;/p&gt;&lt;p&gt;&lt;b&gt;I must tell that this is strictly my personal views on the subject.&lt;/b&gt;&lt;/p&gt;&lt;a href="http://www.dmitry-dulepov.com/2012/03/why-did-65-of-russians-vote-for-putin.html#more"&gt;Read more »&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/O0l-avTnkHA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/7917676669803187700/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/03/why-did-65-of-russians-vote-for-putin.html#comment-form" title="20 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/7917676669803187700?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/7917676669803187700?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/O0l-avTnkHA/why-did-65-of-russians-vote-for-putin.html" title="Why did 65% of russians vote for Putin?" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/tsqdzV_ccNg/default.jpg" height="72" width="72" /><thr:total>20</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/03/why-did-65-of-russians-vote-for-putin.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMBQHsyfip7ImA9WhJXEkg.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5354991387016826534</id><published>2012-02-29T09:40:00.000+02:00</published><updated>2012-08-06T16:07:31.596+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-08-06T16:07:31.596+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Personal" /><title>Birthday soon...</title><content type="html">&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;
I have a birthday on March 7th. Here is my &lt;a href="http://www.amazon.co.uk/registry/wishlist/3BX8QX2G3AQFX"&gt;wish list&lt;/a&gt;. Just in case ;)&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/Qi0eAhsWwps" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5354991387016826534/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/02/birthday-soon.html#comment-form" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5354991387016826534?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5354991387016826534?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/Qi0eAhsWwps/birthday-soon.html" title="Birthday soon..." /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>8</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/02/birthday-soon.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIESH0zfCp7ImA9WhVTFEg.&quot;"><id>tag:blogger.com,1999:blog-3680269432729818126.post-5582035619644009855</id><published>2012-02-28T21:12:00.000+02:00</published><updated>2012-02-28T21:15:09.384+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-28T21:15:09.384+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="TYPO3" /><title>Validating e-mail</title><content type="html">&lt;p&gt;
Just the code:&lt;/p&gt;
&lt;a href="http://www.dmitry-dulepov.com/2012/02/validating-e-mail.html#more"&gt;Read more »&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/dmitry-dulepov/~4/0ZsyHywfIkc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.dmitry-dulepov.com/feeds/5582035619644009855/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.dmitry-dulepov.com/2012/02/validating-e-mail.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5582035619644009855?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3680269432729818126/posts/default/5582035619644009855?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dmitry-dulepov/~3/0ZsyHywfIkc/validating-e-mail.html" title="Validating e-mail" /><author><name>Dmitry Dulepov</name><uri>http://www.blogger.com/profile/00090275219571853930</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://1.bp.blogspot.com/-rVM9Ytn13fE/TtNFFvYddDI/AAAAAAAAAQA/eqdjBGSU-8M/s220/5C3O8327.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://www.dmitry-dulepov.com/2012/02/validating-e-mail.html</feedburner:origLink></entry></feed>
