<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.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" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Victor Farazdagi</title>
	
	<link>http://www.phpmag.ru</link>
	<description>Phing &amp; Zend Framework Musings</description>
	<lastBuildDate>Tue, 20 Sep 2011 21:25:22 PDT</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/php-addicted" /><feedburner:info uri="php-addicted" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><image><link>http://creativecommons.org/licenses/by/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>php-addicted</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/php-addicted" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fphp-addicted" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item><title>MySQL: how to drop multiple tables using single query [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/m7UZ3T_mVNw/</link><category>mysql</category><dc:creator>farazdagi</dc:creator><pubDate>Tue, 20 Sep 2011 21:25:22 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/fb88570678850f0978996a2e771ddc23#farazdagi</guid><description>&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/m7UZ3T_mVNw" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/fb88570678850f0978996a2e771ddc23</wfw:commentRss><feedburner:origLink>http://www.phpmag.ru/2009/03/05/mysql-how-to-drop-multiple-tables-using-single-query/</feedburner:origLink></item><item><title>PHP5: Predefined Interfaces [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/qXNrwqLRVJ0/</link><category>php</category><category>interface</category><dc:creator>farazdagi</dc:creator><pubDate>Tue, 20 Sep 2011 21:25:21 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/5b0bc106cd326bcc392ebc2ebb5fa735#farazdagi</guid><description>Note: This article serves as preliminary for SPL Interfaces article to be published later on.
Overview of PHP5 predefined interfaces&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/qXNrwqLRVJ0" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/5b0bc106cd326bcc392ebc2ebb5fa735</wfw:commentRss><feedburner:origLink>http://www.phpmag.ru/2009/08/02/php5-predefined-interfaces/</feedburner:origLink></item><item><title>Exploring SPL: Interfaces [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/t3YxRgk62A4/</link><category>php</category><category>spl</category><dc:creator>farazdagi</dc:creator><pubDate>Tue, 20 Sep 2011 21:25:19 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/efcd25d764a0260176fa1e14b4c39a8f#farazdagi</guid><description>Starting with PHP5 almost any PHP installation contained SPL (Standard PHP Library) extension - with few exceptions, when hosters intentionally disabled it. With PHP 5.3 out, this extension is considered to be within PHP core, and as such it's not po&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/t3YxRgk62A4" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/efcd25d764a0260176fa1e14b4c39a8f</wfw:commentRss><feedburner:origLink>http://www.phpmag.ru/2009/08/05/exploring-spl-interfaces/</feedburner:origLink></item><item><title>Google API Translate, реализация / Web-разработка / Хабрахабр [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/nGB3keZ8_fA/</link><category>tranlation</category><category>google</category><category>api</category><dc:creator>farazdagi</dc:creator><pubDate>Tue, 20 Sep 2011 21:25:19 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/4114b1e2d0d8d493926db0bf18531c16#farazdagi</guid><description>Kewl example of implementation&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/nGB3keZ8_fA" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/4114b1e2d0d8d493926db0bf18531c16</wfw:commentRss><feedburner:origLink>http://habrahabr.ru/blogs/webdev/61678/</feedburner:origLink></item><item><title>Проект ВААЛ. Контент-анализ. История метода. [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/g1USyMequR0/content.php</link><category>recommendation</category><category>engine</category><dc:creator>farazdagi</dc:creator><pubDate>Tue, 20 Sep 2011 21:25:19 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/32aff839207f28eaadd19dab7784cf25#farazdagi</guid><description>&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/g1USyMequR0" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/32aff839207f28eaadd19dab7784cf25</wfw:commentRss><feedburner:origLink>http://www.vaal.ru/cont/content.php</feedburner:origLink></item><item><title>PHP5: Predefined Interfaces [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/qXNrwqLRVJ0/</link><category>php</category><category>interface</category><dc:creator>farazdagi</dc:creator><pubDate>Mon, 19 Sep 2011 00:44:11 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/5b0bc106cd326bcc392ebc2ebb5fa735#farazdagi</guid><description>Note: This article serves as preliminary for SPL Interfaces article to be published later on.
Overview of PHP5 predefined interfaces&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/qXNrwqLRVJ0" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/5b0bc106cd326bcc392ebc2ebb5fa735</wfw:commentRss><feedburner:origLink>http://www.phpmag.ru/2009/08/02/php5-predefined-interfaces/</feedburner:origLink></item><item><title>MySQL: how to drop multiple tables using single query [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/m7UZ3T_mVNw/</link><category>mysql</category><dc:creator>farazdagi</dc:creator><pubDate>Mon, 19 Sep 2011 00:44:11 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/fb88570678850f0978996a2e771ddc23#farazdagi</guid><description>&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/m7UZ3T_mVNw" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/fb88570678850f0978996a2e771ddc23</wfw:commentRss><feedburner:origLink>http://www.phpmag.ru/2009/03/05/mysql-how-to-drop-multiple-tables-using-single-query/</feedburner:origLink></item><item><title>Exploring SPL: Interfaces [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/t3YxRgk62A4/</link><category>php</category><category>spl</category><dc:creator>farazdagi</dc:creator><pubDate>Mon, 19 Sep 2011 00:44:10 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/efcd25d764a0260176fa1e14b4c39a8f#farazdagi</guid><description>Starting with PHP5 almost any PHP installation contained SPL (Standard PHP Library) extension - with few exceptions, when hosters intentionally disabled it. With PHP 5.3 out, this extension is considered to be within PHP core, and as such it's not po&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/t3YxRgk62A4" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/efcd25d764a0260176fa1e14b4c39a8f</wfw:commentRss><feedburner:origLink>http://www.phpmag.ru/2009/08/05/exploring-spl-interfaces/</feedburner:origLink></item><item><title>Google API Translate, реализация / Web-разработка / Хабрахабр [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/nGB3keZ8_fA/</link><category>tranlation</category><category>google</category><category>api</category><dc:creator>farazdagi</dc:creator><pubDate>Mon, 19 Sep 2011 00:44:10 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/4114b1e2d0d8d493926db0bf18531c16#farazdagi</guid><description>Kewl example of implementation&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/nGB3keZ8_fA" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/4114b1e2d0d8d493926db0bf18531c16</wfw:commentRss><feedburner:origLink>http://habrahabr.ru/blogs/webdev/61678/</feedburner:origLink></item><item><title>Проект ВААЛ. Контент-анализ. История метода. [del.icio.us]</title><link>http://feedproxy.google.com/~r/php-addicted/~3/g1USyMequR0/content.php</link><category>recommendation</category><category>engine</category><dc:creator>farazdagi</dc:creator><pubDate>Mon, 19 Sep 2011 00:44:10 PDT</pubDate><guid isPermaLink="false">http://www.delicious.com/url/32aff839207f28eaadd19dab7784cf25#farazdagi</guid><description>&lt;img src="http://feeds.feedburner.com/~r/php-addicted/~4/g1USyMequR0" height="1" width="1"/&gt;</description><wfw:commentRss>http://feeds.delicious.com/v2/rss/url/32aff839207f28eaadd19dab7784cf25</wfw:commentRss><feedburner:origLink>http://www.vaal.ru/cont/content.php</feedburner:origLink></item><item>
		<title>Top 10 Wrong Ideas About PHP Wrong Ideas</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/LACPx-ANlV0/</link>
		<comments>http://www.phpmag.ru/2011/08/19/top-10-wrong-ideas-about-php-wrong-ideas/#comments</comments>
		<pubDate>Thu, 18 Aug 2011 23:23:26 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[PHP5]]></category>
		<category><![CDATA[advocacy]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1386</guid>
		<description><![CDATA[After reading the amazing post by Manuel Lemos Top 10 Wrong Ideas About PHP, I felt I really need to go over those Wrong Ideas once more (just in case somebody missed the original message). Disclaimer: Manuel Lemos is a well-regarded developer, with lots of contributions, and if you ever used PHPClasses you most probably [...]]]></description>
			<content:encoded><![CDATA[<p>After reading the amazing post by Manuel Lemos <a href="http://www.phpclasses.org/blog/post/155-Top-10-Wrong-Ideas-About-PHP-That-You-Should-Get-Right.html" title="article">Top 10 Wrong Ideas About PHP</a>, I felt I really need to go over those Wrong Ideas once more (just in case somebody missed the original message). </p>
<p>Disclaimer: Manuel Lemos is a well-regarded developer, with lots of contributions, and if you ever used PHPClasses you most probably know who he is. So, I was really prepared to enjoy his new article, provocatively called &#8220;Top 10 Wrong Ideas About PHP&#8221;. I read the article and then re-read, and then once again &#8211; now I am ready to shed some light on my perception of that Top 10.</p>
<p>Take the article below with a lot of humor, as otherwise it loses most of its merits.</p>
<p>If you don&#8217;t have much time, here is an abridged version: PHP is a nice language!</p>
<p></p>
<h3>1. PHP is not a compiled language (it is interpreted)</h3>
<ul>
<li>
When it comes to speed PHP is reasonably performant, most probably you&#8217;ll hit DB bottleneck before you will decide that you need to invent your HipHop.
</li>
<li>
So, who the heck worries about such things &#8211; I belive, it is quite good enough to know that I do not compile source code before execution, and when it comes to execution PHP does quite well.
</li>
<li>
I don&#8217;t understand why when talking about PHP, some other languages need to be brought into discussion &#8211; I mean languages with completely different philosophy behind them. While it sounds sexy that PHP optcode is very similar to Java&#8217;s bytecode, the suggestion that seems to be outcome of such comparison &#8211;  that PHP as platform is on par with Java &#8211; is totally misleading. So, telling that PHP is compiled language just like Java, C# and others (what are they, btw) &#8211; is stretching too far.
</li>
</ul>
<p></p>
<h3>2. PHP cannot do X (access memory, control hardware devices etc)</h3>
<ul>
<li>
The main idea Manuel is pressing here is the fact that you can write your own extension if you need it. That&#8217;s cool but do I have to mention that ability to create extension in C is not actually an exclusive feature of PHP.
</li>
<li>
Plus, although definitely improving &#8211; decent documentation on how to author PHP extensions is still scarce.
</li>
<li>
I love the passage &#8220;if you are not capable of developing C or C++ code, you can always hire another developer to do it for you&#8221; &#8211; I guess yet another exclusive recipe to live happily after in PHP world.
</li>
<li>
PHP has crazy amount of ready to use extensions indeed. So, while all arguments about authoring an extension are a bit naive &#8211; the truth is you rarely have some area uncovered.
</li>
</ul>
<p></p>
<h3>3. PHP cannot do sth that can be done in language X</h3>
<ul>
<li>
There are actually many things that PHP cannot do, which already available in other languages. Anyone who thinks that PHP is feature complete, should code PHP4 till the end of his days. PHP is constantly evolving to include those features &#8211; PHP is not an ideal language, so it is improving constantly. I just don&#8217;t see why I, as PHP developer, need to be shy that some feature is unsupported yet.
</li>
<li>
PHP (to date) has oversimplified object model. Not a different programming style or methodology or anything &#8211; it is a mere fact: dominant paradigm in modern PHP development is OO, and currently implemented OO model is very simple.  Comparing in this sense PHP to Java, or Python, or Ruby (or even JavaScript) &#8211; is missing the whole point. PHP&#8217;s simplified object model is actually an asset in most situations, it is simple and (dare I say) elegant. But it has its problems &#8211; as any architectural design would have.
</li>
<li>
Then as a different solution Manuel declares the ability to execute code in other languages &#8211; well, you either didn&#8217;t try to use it in production environment or have a very low standards for what is called an integration.  Most of extensions to execute other languages are dated, lack documentation and support. So, not an option really.
</li>
<li>
I loved the perverted logic of executing Ruby code: convert Ruby into Java using JRuby (hallelujah!!) and then try to execute it from with PHP using some extension. Lots of fun!
</li>
</ul>
<p></p>
<h3>4. PHP is only for Web development</h3>
<ul>
<li>
You can have CLI scripts indeed, as you can have in myriads of other languages too. Is PHP very suitable for shell scripting &#8211; pretty much so! But I guess anyone who has done shell scripting is smart enough to understand that he can use PHP scripting language, for ..well, shell scripting.
</li>
<li>
When somebody starts talking about PHP-GTK seriously it means he didn&#8217;t try to do it full scale (hey, anybody did it as a full-time job?). PHP-GTK is a nice experiment &#8211; but there are really better tools to do desktop development. You know, if I can hit you with a hammer it doesn&#8217;t necessarily mean I should to, so while you can amaze your Java/Ruby/Python/.NET friends that PHP *can* cope with desktop development &#8211; do NOT try to actually do it.
</li>
<li>
So, you can use PHP for CLI scripting (quite cool by the way!), for desktop development (if you are feeling lonely and masochistic all at the same time), but where PHP really shines is ..um, well..web development. Is it bad?  Absolutely not!
</li>
</ul>
<p></p>
<h3>5. PHP is controlled by Zend</h3>
<ul>
<li>
If anyone has such a &#8220;wrong idea&#8221; in his or her head &#8211; do not bother, most probably it is terminal <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</li>
<li>
So, while refuting such a claim is really nice &#8211; if we go on like this we should also state that PHP is not controlled by aliens as well (just in case some UFO-frightened prospect PHP developer feels safe about his time investment).
</li>
</ul>
<p></p>
<h3>6. PHP documentation is bad or insufficient</h3>
<ul>
<li>
Who ever told this? I look at my local bookstore shelves: lots of PHP books. Amazon? City library? In different human languages? Lots of various level PHP books. Honestly, I won&#8217;t be surprised to look into microwave to find out PHP book even there.
</li>
<li>
Then of course we have manual, and comments in it. The great thing.
</li>
<li>
I guess the whole point of Manuel mentioning a non-existent wrong idea of PHP having not enough documentation is to refute it (done easily).
</li>
</ul>
<p></p>
<h3>7. PHP projects are not reusable because they are not Object Oriented</h3>
<ul>
<li>
Leaving apart the fact that in order to re-use code it doesn&#8217;t have to be object oriented at all let&#8217;s see what bothers that lunatic to-be PHP programmer, who is worried that universe over there will not be able to re-use his projects.
</li>
<li>
Tweaking WordPress is not actually re-using, or does Manuel suggests that judging by the quality of WordPress code base you definitely get a perception that it has already been used (and probably not once!), and you just merely re-using?
</li>
<li>
When Manuel started to explain that instead of packages/modules/namespaces to distinguish between two otherwise colliding &#8220;print&#8221; functions all you need is to use &#8220;mysql_&#8221; prefix  I, honestly, scrolled up and looked when article was published: 18 Aug, 2011 &#8211; the very day PHP 5.3.7 release was announced (with a notice that PHP 5.2 is not supported anymore, btw). Facepalm!
</li>
<li>
If that brilliant prospect PHP user would approach me and say that he can&#8217;t rely on PHP because he can&#8217;t have two print() functions, well I will enlighten him (by hitting with the printed version of PHP manual &#8211; all extensions included) that there are means (in other languages, and the idea has already been ported and widely used), besides prefixing with &#8220;mysql_&#8221;.
</li>
</ul>
<p></p>
<h3>8. PHP is worse than RoR, Django, X language framework</h3>
<ul>
<li>
Again, not sure why Top 10 Wrong Ideas are not called &#8220;Top 10 Wrong Ideas Of Mentally Disabled, and Blind, and Ignorant Social Sci. Students Who Failed Their Mid-Terms&#8221;? Comparing apples to bananas? For what?
</li>
<li>
Why didn&#8217;t the lunatic having this wrong idea compare PHP to *the language X* (be it anything). Additionally clarifying the task at hands? In order to have a qualitative claims lots of parameters should be defined, otherwise comparison is pointless: I doubt you will be able to produce, say, RESTrul web-service any quicker in Ruby, or Python than I will be able to do in PHP. But I wouldn&#8217;t even think to compete on meta-programming, DSL authoring &#8211; because I am at disadvantage there. Why not to jump into another platform if DSL is absolutely necessary for solving problem efficiently?
</li>
</ul>
<p></p>
<h3>9. PHP is not good for high performance scalable web sites or applications.</h3>
<ul>
<li>
Yet another weak/artificial claim/idea, just waiting to be refuted. I love to refer anyone who wonders about scalability of a framework, or language to this <a href="http://stackoverflow.com/questions/1588617/php-vs-python-scalability/1588736#1588736" title="Great Answer!" target="_blank">answer</a>: Languages, libraries and frameworks don&#8217;t scale. Architectures do.
</li>
<li>
I wish people stop telling that because of Facebook, we are covered as far as PHP scalability is concerned. FB went as far as creating whole HipHop thing (and no it doesn&#8217;t prove the opposite either). FB is quite special &#8211; I really doubt that many of us will need scalability at the FB&#8217;s extent, so decisions (even decision to create compiler) are quite special case too.
</li>
<li>
After elaborating in dozens of paragraphs, Manuel concludes: &#8220;most of those techniques are not language specific&#8221;.  So, now I guess we can draw an obvious conclusion ourselves: PHP is better than others yet again! <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</li>
</ul>
<p></p>
<h3>10. PHP developers are cheaper because they are not qualified</h3>
<ul>
<li>
Why not admit that because PHP is a simple and nice language, there are more people tackling it (to a different level of success), so there are more not-so-qualified developers. When we have high learning curve, we have most of not so fanatic developers sorted out, and this is exactly what happens to starship pilots too (I wanted to be a pilot on a battle starship &#8211; but instead slaving in Vim!) <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</li>
<li>
Whenever someone brings the price tag to discussion, it becomes pointless. The fact is that qualified, PHP or not, developers are not cheap. And there&#8217;s nothing in the language that will decrease your rate if you are high profile PHP developer. Period.
</li>
</ul>
<p></p>
<h3>Final thoughts:</h3>
<p>It is funny that in 2011 (when all decent PHP developers know both weak and strong sides of the language) very prominent community figures (and I am talking about Manuel here) feel the pressure to refute chimeric claims that PHP is any worse/better/suitable than X? Throughout the article, Manuel stresses: <strong>PHP is a nice language</strong>. Well, it is the fact &#8211; you only need to clarify for what problem domain it is nice, whether there are alternatives etc etc </p>
<p>And that applies to any language. So, if you feel guilty of using PHP, don&#8217;t. Instead, just go learn some *additional* language &#8211; it will enrich your horizons and even make you a better *PHP* programmer!
</p>
<p>Take care!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=LACPx-ANlV0:IN9ARgNckDM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=LACPx-ANlV0:IN9ARgNckDM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=LACPx-ANlV0:IN9ARgNckDM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=LACPx-ANlV0:IN9ARgNckDM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=LACPx-ANlV0:IN9ARgNckDM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=LACPx-ANlV0:IN9ARgNckDM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=LACPx-ANlV0:IN9ARgNckDM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=LACPx-ANlV0:IN9ARgNckDM:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/LACPx-ANlV0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2011/08/19/top-10-wrong-ideas-about-php-wrong-ideas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2011/08/19/top-10-wrong-ideas-about-php-wrong-ideas/</feedburner:origLink></item>
		<item>
		<title>Phrozn 0.2 Released</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/27LZHpnhKkI/</link>
		<comments>http://www.phpmag.ru/2011/06/30/phrozn-0-2-released/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 20:48:07 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[PHP5]]></category>
		<category><![CDATA[Phrozn]]></category>
		<category><![CDATA[phr]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1343</guid>
		<description><![CDATA[After couple of months of hacking, I finally released Phrozn version 0.2. I had to cut down the feature list as there are quite a lot of things I want to do and not that much time I can dedicate at the moment. Still, I think the release enhances Phrozn project in several ways, so [...]]]></description>
			<content:encoded><![CDATA[<p>After couple of months of hacking, I finally released <a href="http://phrozn.info">Phrozn</a> version 0.2. I had to cut down the feature list as there are quite a lot of things I want to do and not that much time I can dedicate at the moment. Still, I think the release enhances Phrozn project in several ways, so let me tell you what&#8217;s new in.. well, new version of Phrozn:</p>
<h3>Content Providers</h3>
<p>When working on yet another side-project of mine &#8211; <a href="http://zfcasts.ru">ZFCasts</a> (podcast show in Russian where me and my friends speculate on Zend Framework) &#8211; I was immediately stuck, as there was no way I can inject (programmatically) my own content into the pages. Basically, I had an RSS feed with all the contents of the show, and what I needed was some means to integrate that RSS&#8217;s contents into my templates.</p>
<p>That&#8217;s when <a href="http://www.phrozn.info/en/documentation/providers/">Content Providers</a> were created. If you are used to some other static site generators (in Ruby and Python) you might know those beasts under the &#8220;Generators&#8221; name. Why on earth I named them &#8220;Content Providers&#8221; is something I don&#8217;t have answer for, so let&#8217;s just stick with the term.</p>
<p>Right now you can have better control on the variables used within your templates. Basically, you can inject anything &#8211; RSS, hard-coded data, result of the call to some external web-service. Coupled with the fact that you can put your <b>phr up</b> job into cron, you have quite good mechanism of keeping your site updated.</p>
<p>For full info, please, check the official <a href="http://www.phrozn.info/en/documentation/providers/">documentation</a>.</p>
<h3>Phrozn Bundles</h3>
<p>My original aim and one of the top priorities (if not the most important one) is to make contribution not only possible but an easy and fun process. If someone is cool enough to contribute some text processor &#8211; that must be possible without diving into the Phrozn internals.</p>
<p>On par with that goal, I introduced so-called bundles. Bundles are basically some directories in standardized format, that you can archive (into .tgz format) and start distributing to other Phrozn users. I wanted as simple and transparent mechanism of 3rd party code contribution as possible.</p>
<p>Therefore, I launched the <a href="https://github.com/farazdagi/phrozn-bundles">Phrozn Bundles</a> repository on GitHub, so that you can fork it, write your bundle, and send me a pull request (I will take care of archiving and registering it with core Phrozn program). Once done, any Phrozn user will be able to install your bundle as easy as typing:</p>
<pre>
        phr bundle apply your-bundle-name
</pre>
<p>By the way, bundles can be very useful even if you can&#8217;t contribute them back &#8211; they give you very simple way to transfer styles, themes, plugins between several phr installations.</p>
<p>For more info, please, see</p>
<ul>
<li><a href="http://www.phrozn.info/en/documentation/cli-phr/#phr-bundle">phr bundle CLI reference</a></li>
<li><a href="http://www.phrozn.info/en/documentation/articles/create-phrozn-bundle/">How to create custom Phrozn bundle</a></li>
</ul>
<p>I did number of other changes and bug fixes (<a href="http://www.phrozn.info/en/changelogs/#ver-0.2">changelog</a>), but Bundles and Content Providers are by far the most important additions to the stack.</p>
<h3>Finally..</h3>
<p>Should you find any issue, please <a href="http://www.phrozn.info/en/community/">let me know</a>. If you don&#8217;t find issue but think Phrozn is useful, let me know too <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>One last thing for today&#8217;s post. Huge thanks to Phrozn&#8217;s early contributors that helped me nailing down the bugs:</p>
<ul>
<li><a href="http://twitter.com/#!/osmanungur">Osman Üngür</a></li>
<li><a href="http://twitter.com/#!/kazusuke">Kazusuke Sasezaki</a></li>
<li><a href="http://twitter.com/#!/Grummfy">Jonathan Van Belle</a></li>
</ul>
<p>Thank you guys, and looking forward to seeing even more contributors in upcoming releases!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=27LZHpnhKkI:Ys__huRsRcc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=27LZHpnhKkI:Ys__huRsRcc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=27LZHpnhKkI:Ys__huRsRcc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=27LZHpnhKkI:Ys__huRsRcc:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=27LZHpnhKkI:Ys__huRsRcc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=27LZHpnhKkI:Ys__huRsRcc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=27LZHpnhKkI:Ys__huRsRcc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=27LZHpnhKkI:Ys__huRsRcc:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/27LZHpnhKkI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2011/06/30/phrozn-0-2-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2011/06/30/phrozn-0-2-released/</feedburner:origLink></item>
		<item>
		<title>New Project: Phrozn – static site generator in PHP</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/INHdkXArPwk/</link>
		<comments>http://www.phpmag.ru/2011/04/10/new-project-phrozn-static-site-generator-in-php/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 15:49:32 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Phrozn]]></category>
		<category><![CDATA[PHP5]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1301</guid>
		<description><![CDATA[I am really happy to announce new little project of mine &#8211; Phrozn. For quite some time I have been using static site generators written in Ruby an Python. In many cases, static site is exactly what you want. Consider blogs, manuals/books, info pages. Given the scale of how client-side technologies (such as JavaScript) evolved, [...]]]></description>
			<content:encoded><![CDATA[<p>I am really happy to announce new little project of mine &#8211; <a href="http://phrozn.info">Phrozn</a>. </p>
<p>For quite some time I have been using static site generators written in Ruby an Python. In many cases, static site is exactly what you want. Consider blogs, manuals/books, info pages. </p>
<p>Given the scale of how client-side technologies (such as JavaScript) evolved, most of dynamic functionality can be implemented using client-side scripts + remote web-services (e.g. Disqus for comments). More than often we a going down that road even on our completely dynamic sites &#8211; it makes things more simple.</p>
<p>I am not saying that platforms such as WordPress are going down. I don&#8217;t think so. But I think there are many people, just like me, that do not use more than 1% of WordPress functionality, and as such I simply do not need the whole WP for publishing in my blog. </p>
<p>All I need is to write some article in my favorite editor (Vim), run some tool which will wrap entry into layout, add styles and whistles, and publish the entry. Right now, on this very blog, I don&#8217;t see any feature I can not have with</p>
<pre>
        static site generator + JavaScript + some well-known service
</pre>
<p>And the clear benefit for me is relying on my favorite editor (I HATE text-area editors). Coupled with format independence (I can write my entry in HTML, or Twig, or Textile, or Markdown or any other esoteric beast), I get an ideal solution for my simple needs.</p>
<p>Other thing to consider is resources. Running WordPress is certainly way more resource-expensive (both CPU and RAM) than having static web site. For me this means I can have all my projects on medium server with more simple maintenance and caching strategies.</p>
<p>All this is good, but I couldn&#8217;t find any static site generators in PHP. Given the amount of generators in other languages I was surprised. So, I decided to create one myself, that&#8217;s how Phrozn project was born <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It is in early stages of development, but is already quite usable. Please check out <a href="http://phrozn.info/en/documentation/">documentation</a> and let me know if you have any questions. </p>
<p>P.S. I will move this blog into Phrozn pretty soon, so that you have yet another example of &#8220;phrozn site&#8221; (source code of <a href="http://phrozn.info/">phrozn.info</a> site is available on <a href="https://github.com/farazdagi/phrozn-site">GitHub</a>).</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=INHdkXArPwk:Ncg0WG-Ple4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=INHdkXArPwk:Ncg0WG-Ple4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=INHdkXArPwk:Ncg0WG-Ple4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=INHdkXArPwk:Ncg0WG-Ple4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=INHdkXArPwk:Ncg0WG-Ple4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=INHdkXArPwk:Ncg0WG-Ple4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=INHdkXArPwk:Ncg0WG-Ple4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=INHdkXArPwk:Ncg0WG-Ple4:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/INHdkXArPwk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2011/04/10/new-project-phrozn-static-site-generator-in-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2011/04/10/new-project-phrozn-static-site-generator-in-php/</feedburner:origLink></item>
		<item>
		<title>New Git tasks in Phing 2.4.5</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/QLIu74qwBhk/</link>
		<comments>http://www.phpmag.ru/2011/03/03/new-git-tasks-in-phing-2-4-5/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 10:08:03 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Build Managers]]></category>
		<category><![CDATA[Phing]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[phing]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1268</guid>
		<description><![CDATA[For the last several weeks, I was working more on ZF2&#8242;s OpenId component + on (to be announced here soon) my own project, so wasn&#8217;t able to dedicate as much time to Phing as I&#8217;d love to. Despite that, couple of updates to git-tasks are on their way for the announced Phing 2.4.5. First of [...]]]></description>
			<content:encoded><![CDATA[<p>For the last several weeks, I was working more on <a href="https://github.com/farazdagi/zf2/tree/openid-refactoring">ZF2&#8242;s OpenId component</a> + on (to be announced here soon) my own project, so wasn&#8217;t able to dedicate as much time to <a href="http://phing.info">Phing</a> as I&#8217;d love to. Despite that, couple of updates to git-tasks are on their way for the <a href="http://twitter.com/#!/phingofficial/statuses/42953700808990720">announced</a> Phing 2.4.5. </p>
<p>First of all, I was able to finish off ticket <a href="http://phing.info/trac/ticket/618">#618</a>, and integrate tasks contributed by <a href="https://github.com/EvanK/phing-ext-gittasks">Evan Kaufman</a> (huge thanks and all the credits go to him). He supplied task files, which after number of slight updates, addition of unit tests, and documentation were pushed into trunk. </p>
<p>So, in Phing 2.4.5 we will have <a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitLogTask">GitLog</a> and <a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitTagTask">GitTag</a> tasks, which are quite handy and certainly will enable one to have more flexible build scripts.</p>
<p>GitLogTask is a wrapper around <a href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html">git-log</a>, and here are couple of examples:</p>
<pre class="xml" name="code">
&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;

&lt;!-- clone repository --&gt;
&lt;gitclone
    repository="git://github.com/path/to/repo/repo.git"
    targetPath="${repo.dir.resolved}" /&gt;
<!-- write git-log output to "logs" variable -->
&lt;gitlog
    paths="${repo.dir.resolved}"
    format="oneline"
    maxCount="2"
    stat="true"
    noMerges="false"
    since="Sun Jan 23 23:55:42 2011 +0300"
    until="Mon Jan 24 09:59:33 2011 +0300"
    outputProperty="logs"
    repository="${repo.dir.resolved}" /&gt;
&lt;echo&gt;${logs}&lt;echo&gt;
&lt;!-- Dump logs with relative dates --&gt;
&lt;gitlog
    format="medium"
    date="relative"
    repository="${repo.dir.resolved}" /&gt;
&lt;!-- Dump logs in custom format --&gt;
&lt;gitlog
    format="The author of %H was %an &lt;%ae&gt;"
    repository="${repo.dir.resolved}" /&gt;
</pre>
<p>GitTagTask is a wrapper around <a href="http://www.kernel.org/pub/software/scm/git/docs/git-tag.html">git-tag</a>, and, again, here are couple of examples:</p>
<pre class="xml" name="code">
&lt;property name="repo.dir" value="./relative/path/to/repo" /&gt;
&lt;resolvepath propertyName="repo.dir.resolved" file="${repo.dir}" /&gt;

&lt;!-- clone repository --&gt;
&lt;gitclone
    repository="git://github.com/path/to/repo/repo.git"
    targetPath="${repo.dir.resolved}" /&gt;

&lt;!-- Create tags named "ver1.0"  out of current HEAD --&gt;
&lt;gittag repository="${repo.dir.resolved}" name="ver1.0" /&gt;

&lt;!-- Force tag (re)creation even if one already exists --&gt;
&lt;gittag
    repository="${repo.dir.resolved}"
    name="ver1.0" force="true"/&gt;

&lt;!-- Create tag name "ver1.0" on a given commit  --&gt;
&lt;gittag repository="${tmp.dir.resolved}"
    name="ver1.0"
    commit="c573116f395d36497a1ac1dba565ecd3d3944277" /&gt;

&lt;!-- Or in more general case: create tag name "ver1.0" on a given object --&gt;
&lt;gittag repository="${tmp.dir.resolved}"
    name="ver1.0"
    object="c573116f395d36497a1ac1dba565ecd3d3944277" /&gt;

&lt;!-- Create tag with annotation and message --&gt;
&lt;gittag
    repository="${repo.dir.resolved}"
    name="ver1.0"
    annotate="true" message="Version 1.0 tag"/&gt;

&lt;!-- Delete tag --&gt;
&lt;gittag
    repository="${repo.dir.resolved}"
    name="ver1.0" delete="true" /&gt;
</pre>
<p>Another thing I was able to work on, is enabling separate commit creation on fast-forward merging (see fastForwardCommit option in <a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitMergeTask">GitMergeTask</a> and &#8211;ff/&#8211;no-ff in official <a href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html">git-merge docs</a>).</p>
<p>Please note that <a href="http://twitter.com/#!/michieltcs">Michiel</a> smashed <a href="http://phing.info/trac/query?group=status&#038;milestone=2.4.5">lots</a> of other bugs and created several enhancements, so stay tuned for upcoming release of Phing <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>That&#8217;s all for today &#8211; have a green build!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=QLIu74qwBhk:uxoqMX-L17E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=QLIu74qwBhk:uxoqMX-L17E:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=QLIu74qwBhk:uxoqMX-L17E:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=QLIu74qwBhk:uxoqMX-L17E:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=QLIu74qwBhk:uxoqMX-L17E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=QLIu74qwBhk:uxoqMX-L17E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=QLIu74qwBhk:uxoqMX-L17E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=QLIu74qwBhk:uxoqMX-L17E:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/QLIu74qwBhk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2011/03/03/new-git-tasks-in-phing-2-4-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2011/03/03/new-git-tasks-in-phing-2-4-5/</feedburner:origLink></item>
		<item>
		<title>Copy/Paste Issues in CLI Vim</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/4HeKOuEE-8c/</link>
		<comments>http://www.phpmag.ru/2011/02/22/copypaste-issues-in-cli-vim/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 10:41:13 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[cli]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1239</guid>
		<description><![CDATA[I use Vim whole day, every day. Combined with GNU Screen I have a really powerful development platform. Unfortunately, I had a consistency problem with copy/paste text between different Vim instances (running in different iTerm2 tabs, or in separate GNU Screen windows). When running CLI locally it is not a big deal as Vim has [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://www.vim.org/">Vim</a> whole day, every day. </p>
<p>Combined with <a href="http://www.gnu.org/software/screen/">GNU Screen</a> I have a really powerful development platform. </p>
<p>Unfortunately, I had a consistency problem with copy/paste text between different Vim instances (running in different iTerm2 tabs, or in separate GNU Screen windows). </p>
<p>When running CLI locally it is not a big deal as Vim has support for yank/paste to/from system clipboard (via * and + registers). It is not an issue if you work with MacVim either, as it has full integration with system clipboard.</p>
<p>My problem is that most of the time, when developing, I am connecting to different machines via ssh. There are number of solutions: for eg X11 Forwarding, using xclips. </p>
<p>But I wanted a more simple approach that </p>
<ul>
<li>will require zero configuration on my part</li>
<li>will work 100% of time, disregarding from which machine I am connecting, whether I connect as ssh -x host etc</li>
</ul>
<p>Most obvious solution is to use temp file, where selection is going to be yanked into, and (presumably from another vim instance running on the very same host) is going to be pasted from.</p>
<p>This trick, as many others, has been already discussed on <a href="http://vim.wikia.com/wiki/Copy_and_paste_between_sessions_using_a_temporary_file">Vim.Wikia</a>.<br />
All I needed to add to my <a href="https://github.com/farazdagi/vim-ide">Vim Bundle</a>&#8216;s .vimrc:</p>
<pre name="code" class="bash">
"copy the current visual selection to ~/.vbuf
vmap <Leader>y :w! ~/.vbuf<CR>
"copy the current line to the buffer file if no visual selection
nmap <Leader>y :.w! ~/.vbuf<CR>
"paste the contents of the buffer file
nmap <Leader>p :r ~/.vbuf<CR>
</pre>
<p>Now, when working in different windows of GNU Screen (I have at least two instances of Vim &#8211; one with current code, and another with Unit Test suite), to move text between those intances, I just need to </p>
<ol>
<li>visually select code </li>
<li>type ,y </li>
<li>switch to another GNU Screen window</li>
<li>type ,p</li>
</ol>
<p>This four steps take less than a couple of seconds, mind you <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=4HeKOuEE-8c:CO6e9XGvmp0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=4HeKOuEE-8c:CO6e9XGvmp0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=4HeKOuEE-8c:CO6e9XGvmp0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=4HeKOuEE-8c:CO6e9XGvmp0:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=4HeKOuEE-8c:CO6e9XGvmp0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=4HeKOuEE-8c:CO6e9XGvmp0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=4HeKOuEE-8c:CO6e9XGvmp0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=4HeKOuEE-8c:CO6e9XGvmp0:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/4HeKOuEE-8c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2011/02/22/copypaste-issues-in-cli-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2011/02/22/copypaste-issues-in-cli-vim/</feedburner:origLink></item>
		<item>
		<title>Phing: New Version of Phing Released!</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/IL8s3X2f3-o/</link>
		<comments>http://www.phpmag.ru/2010/11/14/phing-2-4-3-released/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 18:38:09 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Build Managers]]></category>
		<category><![CDATA[Phing]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1223</guid>
		<description><![CDATA[Just a tiny note: Glad to announce that Phing 2.4.3 is out and is ready to be used! Lots of bug fixes + PHPUnit 3.5 Support + GitTasks = Phing 2.4.3!! See full release notes and let us know if you spot anything broken! Happy phinging]]></description>
			<content:encoded><![CDATA[<p>Just a tiny note: Glad to announce that Phing 2.4.3 is out and is ready to be used!</p>
<div style="margin:0 auto;width:450px;border:1px dotted silver;padding:10px;">Lots of bug fixes + PHPUnit 3.5 Support + GitTasks = Phing 2.4.3!!</div>
<p>See full <a href="http://phing.info/trac/wiki/Users/News/Phing%202.4.3%20released">release notes</a> and  <a href="http://phing.info/trac/newticket">let us know</a> if you spot anything broken!</p>
<p>Happy phinging <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=IL8s3X2f3-o:-b3vYVtpeIU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=IL8s3X2f3-o:-b3vYVtpeIU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=IL8s3X2f3-o:-b3vYVtpeIU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=IL8s3X2f3-o:-b3vYVtpeIU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=IL8s3X2f3-o:-b3vYVtpeIU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=IL8s3X2f3-o:-b3vYVtpeIU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=IL8s3X2f3-o:-b3vYVtpeIU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=IL8s3X2f3-o:-b3vYVtpeIU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/IL8s3X2f3-o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2010/11/14/phing-2-4-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2010/11/14/phing-2-4-3-released/</feedburner:origLink></item>
		<item>
		<title>Announcement: I will speak at ZFConf Ukraine</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/qSkGzdAGJYI/</link>
		<comments>http://www.phpmag.ru/2010/11/09/zfconf-ua/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 16:54:17 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[conferences]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1196</guid>
		<description><![CDATA[Today, ZFConf Ukraine was announced on several major platforms (including habrahabr.ru and zendframework.ru). The conference will take place in Kyiv, on 27 Nov. 2010 and I have a great luck and privilege* speaking there! Conference language is Russian and in addition to Zend Framework talks, you can also listen to Magento people there! Attending is [...]]]></description>
			<content:encoded><![CDATA[<p>
<a href="http://www.zfconf.org.ua"><img src="http://habreffect.ru/files/a10/cbbfacb76/zfconfua_and_mageconf.jpg" alt="ZFConf and MageConf" style="float:left;margin:0 5px 0 0;" /></a><br />
Today, <a href="http://www.zfconf.org.ua">ZFConf Ukraine</a> was announced on several major platforms (including <a href="http://habrahabr.ru/blogs/zend_framework/107791/">habrahabr.ru</a> and <a href="http://zendframework.ru/forum/index.php?topic=3632.0">zendframework.ru</a>). </p>
<p>The conference will take place in Kyiv, on 27 Nov. 2010 and I have a great luck and privilege<sup>*</sup> speaking there! Conference language is Russian and in addition to Zend Framework talks, you can also listen to Magento people there!</p>
<p>Attending is simple (remember to <a href="http://zfconf.org.ua/registration/">register</a> though) and I really hope to see you there: it will be interesting, it is an opportunity to meet <strong>real</strong> people, and it is free.</p>
<p><a href="http://zfconf.org.ua/conf-2010/topics/zf-evolution/">My talk</a> is about ZF2 evolution as seen through design patterns application on both existing and upcoming architecture. NB: It is waaaay more funny than it sounds <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<div style="clear:both"></div>
<p>
<sup>*</sup> Like in &#8220;GRANT SPEAK ON zfconfs.zfconfua&#8221; <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=qSkGzdAGJYI:W4rn5OZ4hyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=qSkGzdAGJYI:W4rn5OZ4hyU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=qSkGzdAGJYI:W4rn5OZ4hyU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=qSkGzdAGJYI:W4rn5OZ4hyU:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=qSkGzdAGJYI:W4rn5OZ4hyU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=qSkGzdAGJYI:W4rn5OZ4hyU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=qSkGzdAGJYI:W4rn5OZ4hyU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=qSkGzdAGJYI:W4rn5OZ4hyU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/qSkGzdAGJYI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2010/11/09/zfconf-ua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2010/11/09/zfconf-ua/</feedburner:origLink></item>
		<item>
		<title>Phing: Tasks for Git added!</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/fmAHHlgTXmc/</link>
		<comments>http://www.phpmag.ru/2010/10/21/phing-tasks-for-git-added/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 13:12:27 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Build Managers]]></category>
		<category><![CDATA[Phing]]></category>
		<category><![CDATA[phing]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1154</guid>
		<description><![CDATA[In preparation of what should have been a minor bug-fix release (2.4.3), me and Michiel have not only smashed bugs, but introduced quite a few features as well. The feature that I spend most of my time on was implementation of equal support for Git as we had for Subversion. It&#8217;s been quite a lot [...]]]></description>
			<content:encoded><![CDATA[<p>In preparation of what should have been a minor bug-fix release (2.4.3), me and <a href="http://twitter.com/#!/michieltcs">Michiel</a> have not only smashed bugs, but introduced quite a few features as well. The feature that I spend most of my time on was implementation of equal support for Git as we had for Subversion.</p>
<p>It&#8217;s been quite a lot of time from the first <a href="http://phing.info/trac/ticket/369">request</a> by Steven Roussey to actually having GitTasks available in Phing. But finally we have them: </p>
<ul>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitInitTask">GitInitTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitGcTask">GitGcTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitCheckoutTask">GitCheckoutTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitCloneTask">GitCloneTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitBranchTask">GitBranchTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitFetchTask">GitFetchTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitMergeTask">GitMergeTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitPullTask">GitPullTask</a>
<li><a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#GitPushTask">GitPushTask</a>
</ul>
<p>I already planned enhancements, but these ones should get you up and running!</p>
<p>Although I have created those tasks from scratch, I should mention three persons without whose work this undertaking of mine wouldn&#8217;t be that interesting and rewarding: <a href="http://twitter.com/#!/co3k">Kousuke Ebihara</a>, <a href="http://twitter.com/#!/kirkryyn">Beau Simensen</a>, and <a href="http://twitter.com/#!/zacharydanger/">Zachary Danger</a>.</p>
<p>Kousuke is the guy behind PEAR&#8217;s <a href="http://pear.php.net/package/VersionControl_Git">VersionControl_Git</a> &#8211; which made it ridiculously easy to write git manipulating magic. Beau and Zach, beside creating custom <a href="http://github.com/zacharydanger/git-phing">git tasks</a> to which I always turned for road-map and inspiration, also constantly pushed me forward, by providing feedback and asking when I will finally make GitTasks available to general public. </p>
<p>Thank you, guys, for your marvelous work!</p>
<p>I really hope that you will find those tasks helpful, and if you spot any issue you will make sure to <a href="http://www.phing.info/trac/newticket">hit me back</a>, so that I can improve the code.</p>
<p>That&#8217;s all &#8211; wish you sane an non-broken builds!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=fmAHHlgTXmc:UlFONZrl9ro:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=fmAHHlgTXmc:UlFONZrl9ro:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=fmAHHlgTXmc:UlFONZrl9ro:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=fmAHHlgTXmc:UlFONZrl9ro:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=fmAHHlgTXmc:UlFONZrl9ro:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=fmAHHlgTXmc:UlFONZrl9ro:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=fmAHHlgTXmc:UlFONZrl9ro:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=fmAHHlgTXmc:UlFONZrl9ro:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/fmAHHlgTXmc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2010/10/21/phing-tasks-for-git-added/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2010/10/21/phing-tasks-for-git-added/</feedburner:origLink></item>
		<item>
		<title>Phing 2.4.2.1 is released.</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/9nAt8rFCLBw/</link>
		<comments>http://www.phpmag.ru/2010/10/06/phing-release/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 03:16:16 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[PHP5]]></category>
		<category><![CDATA[phpunit]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1138</guid>
		<description><![CDATA[As anyone doing serious programming using PHP, you certainly know that Sebastian Bergmann released version 3.5 of his exceptional PHPUnit package. He announced the release later on in his blog. Version 3.5 is actually the version you get when using pear install phpunit/phpunit and it means that within short period of time everybody will be [...]]]></description>
			<content:encoded><![CDATA[<p>As anyone doing serious programming using PHP, you certainly know that Sebastian Bergmann released version 3.5 of his exceptional PHPUnit package. He <a href="http://sebastian-bergmann.de/archives/897-PHPUnit-3.5.html">announced</a> the release later on in <a href="http://sebastian-bergmann.de">his blog</a>.</p>
<p>Version 3.5 is actually the version you get when using </p>
<pre name="code" class="bash">
pear install phpunit/phpunit
</pre>
<p>and it means that within short period of time everybody will be running it. </p>
<p>And it so happened that when preparing the new Phing release (2.4.3) we weren&#8217;t aware of what was comming with PHPUnit 3.5 &#8211; that&#8217;s some backward incompatible changes due to package refactoring done on that branch. So, once 3.5 was out we started getting reports that <a href="http://phing.info/docs/guide/trunk/chapters/appendixes/AppendixC-OptionalTasks.html#PHPUnitTask">PHPUnitTask</a> for Phing doesn&#8217;t work. And it actually didn&#8217;t <img src='http://www.phpmag.ru/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Since PHPUnit is crucial for PHP development, we had to push one extra release before we proceed with Phing 2.4.3 &#8211; so here you are: Phing 2.4.2.1 release with (hopefully) PHPUnit 3.5 support.</p>
<p>In order to upgrade:</p>
<pre name="code" class="bash">
pear upgrade phing/phing
</pre>
<p>Let us know if you happen to spot any issues.</p>
<p>Just throwing message with <a href="http://hashtags.org/phing">#phing hashtag</a> on twitter is enough, if you have any further questions you can always contact <a href="http://twitter.com/farazdagi">me</a> or <a href="http://twitter.com/michieltcs">Michiel</a> (or shout something in <a href="http://twitter.com/phingofficial">@PhingOfficial</a>).</p>
<p>Thanks for running your builds on <a href="http://phing.info">Phing</a>, and stay tuned for new release!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=9nAt8rFCLBw:BDAl7shJg1w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=9nAt8rFCLBw:BDAl7shJg1w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=9nAt8rFCLBw:BDAl7shJg1w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=9nAt8rFCLBw:BDAl7shJg1w:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=9nAt8rFCLBw:BDAl7shJg1w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=9nAt8rFCLBw:BDAl7shJg1w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=9nAt8rFCLBw:BDAl7shJg1w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=9nAt8rFCLBw:BDAl7shJg1w:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/9nAt8rFCLBw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2010/10/06/phing-release/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2010/10/06/phing-release/</feedburner:origLink></item>
		<item>
		<title>Vim 7.3 is out!!</title>
		<link>http://feedproxy.google.com/~r/php-addicted/~3/oR8DieYV2i8/</link>
		<comments>http://www.phpmag.ru/2010/08/17/vim-7-3-is-out/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 13:07:07 +0000</pubDate>
		<dc:creator>Victor Farazdagi</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[cli]]></category>

		<guid isPermaLink="false">http://www.phpmag.ru/?p=1085</guid>
		<description><![CDATA[Couple of days ago, Vim team released new version of their great text editor. Once I had a little time, that&#8217;s today, I upgraded all my boxes. There couple of new features that are particularly interesting: a) Persistent undo Small but nevertheless very useful addition. Basically, your undo lists are dumped into undo files allowing [...]]]></description>
			<content:encoded><![CDATA[<p>Couple of days ago, Vim team <a href="https://groups.google.com/group/vim_announce/browse_thread/thread/66c02efd1523554b">released</a> new version of their great text editor. Once I had a little time, that&#8217;s today, I upgraded all my boxes. There couple of new features that are particularly interesting:<br />
<span id="more-1085"></span></p>
<h3>a) Persistent undo</h3>
<p>Small but nevertheless very useful addition. Basically, your undo lists are dumped into undo files allowing you to undo/redo even if buffer is unloaded (or even if editor closed). Plus now you are able to undo even after buffer reload (this is separate feature actually).</p>
<p>To enable, add to your .vimrc:</p>
<pre name="code" class="bash">
set undofile
set undodir=/tmp
</pre>
<p>That will enable dumping undo lists into undofile, which will be located in /tmp folder.</p>
<h3>b) Arbitrary columns</h3>
<p>Main use for me is to highlight maximum line length. You could have similar functionality before, but now it is supported out of box:</p>
<pre name="code" class="bash">
" make sure that max lines are displayed
" (80 and 120 are from ZF Coding standards)
set colorcolumn=80,120
</pre>
<p>To update the color of the ruler use hl-ColorColumn. In our custom theme (based on <a href="http://dengmao.wordpress.com/2007/01/22/vim-color-scheme-wombat/">wombat</a>), I set color as:</p>
<pre name="code" class="bash">
hi ColorColumn guibg=#2d2d2d
</pre>
<h3>c) Relative line numbers</h3>
<p>Well, at first I though this kind of controversial feature, but once I tried to navigate inside document using it &#8211; I suppose I like this feature. In any case, not added to my .vimrc by default. I turn it manually:</p>
<pre name="code" class="bash">
:set rnu
</pre>
<p>and to get back to original line numbers:</p>
<pre name="code" class="bash">
:set nu
</pre>
<h3>d) Conceal text</h3>
<p>Well, this feature is mainly for syntax file writers, as it <em>might</em> make markup text more readable. I, honestly, haven&#8217;t enough incentive to dig into it any deeper, as I don&#8217;t really see how can I use it in my immediate work (I actually like to see all the markup).</p>
<h3>Conclusion</h3>
<p>Although 7.3 is a minor release, it is still the result of two-years of work, with a lot of issues fixed and several very cool additions.</p>
<h3>Couple of notes on installation</h3>
<p>On our <a href="http://4cinc.com/">4C&#8217;s development server</a> (running CentOS), I was able to compile 7.3 without any issues whatsoever. </p>
<p>While recently switching to Mac, I still program on my old Ubuntu box and updating the Vim installation didn&#8217;t work the first time I tried. I noticed that my Ubuntu installation needed <strong>xorg-dev</strong> and <strong>libgtk2.0-dev</strong> packages, once installed I was able to compile an complete the Vim&#8217;s installation.</p>
<p>Here is little script I use to compile and install Vim on CentOS (used it on Ubuntu as well):</p>
<pre name="code" class="php">
#!/bin/bash
export CONF_OPT_GUI='--enable-gui=gtk2'
export CONF_OPT_PYTHON='--enable-pythoninterp'
export CONF_OPT_MULTIBYTE='--enable-multibyte'
export CONF_OPT_FEAT='--with-features=huge'
export CONF_OPT_COMPBY='--with-compiledby="yourname@here.com'

make distclean
./configure $CONF_OPT_FEAT $CONF_OPT_MULTIBYTE $CONF_OPT_PYTHON $CONF_OPT_COMPBY $CONF_OPT_GUI
make
make install
</pre>
<p>Save it into extracted <strong>vim73</strong> directory (I prefer to use name &#8220;configure-my&#8221;), then simply source:</p>
<pre name="code" class="shell">
source configure-my
</pre>
<p>Hope that saves you some time and happy Viming!!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/php-addicted?a=oR8DieYV2i8:8mkgvOZEcRk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=oR8DieYV2i8:8mkgvOZEcRk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=oR8DieYV2i8:8mkgvOZEcRk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=oR8DieYV2i8:8mkgvOZEcRk:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/php-addicted?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=oR8DieYV2i8:8mkgvOZEcRk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=oR8DieYV2i8:8mkgvOZEcRk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/php-addicted?a=oR8DieYV2i8:8mkgvOZEcRk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/php-addicted?i=oR8DieYV2i8:8mkgvOZEcRk:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/php-addicted/~4/oR8DieYV2i8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.phpmag.ru/2010/08/17/vim-7-3-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><feedburner:origLink>http://www.phpmag.ru/2010/08/17/vim-7-3-is-out/</feedburner:origLink></item>
	</channel>
</rss>

