<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>fxposter&#039;s wave &#187; WordPress</title>
	<atom:link href="http://blog.fxposter.org/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.fxposter.org</link>
	<description>Stories about Ruby, JavaScript, Objective-C and other cool tools</description>
	<lastBuildDate>Sun, 25 Jul 2010 08:46:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Небольшая оптимизация производительности этого блога</title>
		<link>http://blog.fxposter.org/2010/07/11/performance-optimization/</link>
		<comments>http://blog.fxposter.org/2010/07/11/performance-optimization/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 16:20:01 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[habrahabr]]></category>
		<category><![CDATA[mod_deflate]]></category>
		<category><![CDATA[mod_expires]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=812</guid>
		<description><![CDATA[Некоторые свои посты я дополняю постами-линками на Хабрахабре. Последний подобный пост - &#8220;Особенности работы jQuery.live()&#8220;. Он так и не попал на главную, но в данном случае это не очень важно, т.к. свой &#8220;хабраэффект&#8221; я поймал. До этого у меня случались странности на сервере - он начинал есть все 400% процессора и наглухо зависал - к [...]]]></description>
			<content:encoded><![CDATA[<p>Некоторые свои посты я дополняю постами-линками на <a href="http://habrahabr.ru/">Хабрахабре</a>. Последний подобный пост - &#8220;<a title="Permanent Link to Особенности работы  jQuery.live()" rel="bookmark" href="http://blog.fxposter.org/2010/06/16/jquery-live-method/">Особенности работы jQuery.live()</a>&#8220;. Он так и не попал на главную, но в данном случае это не очень важно, т.к. свой &#8220;хабраэффект&#8221; я поймал.</p>
<p>До этого у меня случались странности на сервере - он начинал есть все 400% процессора и наглухо зависал - к нему было невозможно подключиться и единственным вариантом восстановления был шатдаун инстанса в админке <a href="http://www.linode.com/">Linode</a>. Это случалось нечасто и не особо меня парило. Но когда на мой сайт стали постоянно заходить люди с хабра - такое поведение сервера стало постоянным. Он начинал есть весь процессор. После перезагрузки он пару минут держался, а потом опять начинал свой бравое дело. Стало ясно - что-то явно не так в настройках.</p>
<p>После довольно недолгих разбирательств стало ясно, что виноват <a href="http://httpd.apache.org/">Apache</a> (у меня стоит Apache + mod_prefork + php + ruby via passenger). Параметры prefork-а:</p>
<pre><code>&lt;IfModule mpm_prefork_module&gt;
StartServers          5
MinSpareServers       5
MaxSpareServers      10
MaxClients          150
MaxRequestsPerChild   0
&lt;/IfModule&gt;</code></pre>
<p>Теперь мне стало очевидно всё, кроме одной вещи - почему же все-таки был загружен процессор&#8230; А причина зависаний сервера была проста - параметр MaxClients отвечает за то, сколько процессов апач может запустить для обработки пользователей (в prefork-е каждый запрос обрабатывается отдельным процессом, который либо запускается, либо вытаскивается из пула свободных запущенных процессов). Процессы апача ну очень недешевые в плане ресурсов - честно говоря, я до сих пор не знаю, как можно посмотреть, сколько <strong>реально</strong> кушает процесс апача - по текущей нагрузке на сервак при создании новых процессов апач кушает лишние 10-20мб памяти. 150 процессов * 10 мегабайт&#8230; Ну вы поняли. У меня сейчас обычныя VPS-ка на 360Мб. В общем, причина зависаний была в том, что апач создавал кучу процессов и уходит в своп по самое нехочу. А вот вернуться оттуда он уже сам не мог - ему нужна была помощь.</p>
<p>Выход - снижать количество максимально процессов апача. Методом научного тыка была выбрана цифра в 20 процессов. Собственно, сейчас эта цифра вполне себе хорошо работает. После уменьшения MaxClients и перезапуска сервера он падать перестал. Но появилась новая проблема - из-за хабраэффекта сервак хоть и не падал, но  отдавал ответы очень долго. Эту проблему я решил не решать, т.к. в тот момент был на работе. Сейчас вот появилось немного времени и я решил протестировать свой блог на отзывчивость.</p>
<pre><code>ab -c 1 -n 100 http://blog.fxposter.org/</code></pre>
<p>Эмм&#8230; Результата я не дождался.</p>
<p>Для тех, кто не работал с ab и не знает, что это такое - <a href="http://httpd.apache.org/docs/2.0/programs/ab.html">Apache Benchmark</a>.</p>
<pre><code>ab -c 1 -n 10 http://blog.fxposter.org/</code></pre>
<p>Результат меня неприятно удивил. Результаты, к сожалению, не сохранились, но могу сказать точно, что время генерации страницы было около 1.5 секунды (судя по тому, что сейчас показывает генерация страницы, если её нет в кеше).</p>
<p>Собственно, стало понятно, как бороть &#8220;хабраэффект&#8221; - нужно сильно ускорить отдачу странички. Как? Да очень просто - кешированием. Слава богу, что это <a href="http://wordpress.org/">WordPress</a> и тут есть такие плагины, как <a href="http://wordpress.org/extend/plugins/wp-cache/">wp-cache</a> - прикручивается за несколько минут и пока что отлично работает. Если бы такого плагина не было, то, наверное, у меня бы была сейчас статья о том, что такое <a href="http://en.wikipedia.org/wiki/Reverse_proxy">Reverse Proxy</a> и как его использовать для кеширования. :) А так - поставил, включил. Результаты:</p>
<ul>
<li><a href="http://blog.fxposter.org/wp-content/uploads/2010/07/ab2.txt"> пустой кеш, concurrency = 1</a></li>
<li><a href="http://blog.fxposter.org/wp-content/uploads/2010/07/ab1.txt"> заполненный кеш, concurrency = 100</a></li>
</ul>
<p>Заодно решил немного пооптимизировать клиентскую часть - добавить <a href="http://httpd.apache.org/docs/2.2/mod/mod_expires.html">expires</a> и сжатие контента (использовался модуль апача <a href="http://httpd.apache.org/docs/2.2/mod/mod_deflate.html">deflate</a>).</p>
<p>Приведу конечные файлы:</p>
<pre><code># /etc/apache2/mods-available/expires.conf
&lt;IfModule mod_expires.c&gt;

ExpiresActive On

ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType image/jpeg "access plus 1 weeks"

ExpiresByType text/css "access plus 1 weeks"
ExpiresByType application/javascript "access plus 1 weeks"
&lt;/IfModule&gt;</code></pre>
<pre><code># cat /etc/apache2/mods-available/deflate.conf
&lt;IfModule mod_deflate.c&gt;
 # AddOutputFilterByType DEFLATE text/html text/plain text/xml

 DeflateCompressionLevel 9

 # Insert filter
 SetOutputFilter DEFLATE

 # Netscape 4.x has some problems...
 BrowserMatch ^Mozilla/4 gzip-only-text/html

 # Netscape 4.06-4.08 have some more problems
 BrowserMatch ^Mozilla/4\.0[678] no-gzip

 # MSIE masquerades as Netscape, but it is fine
 # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

 # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
 # the above regex won't work. You can use the following
 # workaround to get the desired effect:
 BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

 # Don't compress images
 SetEnvIfNoCase Request_URI \
 \.(?:gif|jpe?g|png)$ no-gzip dont-vary

 &lt;IfModule mod_headers.c&gt;
 # Make sure proxies don't deliver the wrong content
 Header append Vary User-Agent env=!dont-vary
 &lt;/IfModule&gt;
&lt;/IfModule&gt;</code></pre>
<p>Если вас интересует, почему эти файлы выглядят именно так - читайте документацию к модулям апача.</p>
<p>На другой ОС (у меня Ubuntu 9.04) эти файлы, наверняка, должны будут находиться в других местах. У себя я их разместил так, потому что эти конфиги автоматически подключаются вместе с подключением соответствующих модов апача (при использовании команды a2enmod).</p>
<p>По идее теперь сайт должен получше откликаться и, думаю, все-таки теперь он выдержит хабраэффект. :)</p>
<p><em><strong>PS</strong>. С точки зрения клиентской оптимизации - css-ки и js-ки лучше бы собрать в один файл, а кучу запросов к изображениям заменить спрайтами. Заниматься первым особо не вижу смысла, т.к. и стилей и скриптов на блоге немного, а изображениями заниматься лень, т.к. все равно собираюсь переезжать на &#8220;<a href="http://2010dev.wordpress.com/">Twenty Ten</a>&#8220;.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2010/07/11/performance-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Переехал на Dreamhost</title>
		<link>http://blog.fxposter.org/2008/07/16/moved-to-dreamhost/</link>
		<comments>http://blog.fxposter.org/2008/07/16/moved-to-dreamhost/#comments</comments>
		<pubDate>Wed, 16 Jul 2008 10:34:24 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=456</guid>
		<description><![CDATA[Последней каплей на предыдущем хостинге стало то, что я WordPress обновлял больше часа по FTP. И всё из-за этих самых разрывов. В общем - сбэкапил я оттуда весь контент и бд, перенаправил NS&#8217;ы домена на Dreamhost, а сегодня утром поставил WP на новый хостинг, залил базу, попутно переведя её в UTF-8, и теперь наслаждаюсь жизнью. [...]]]></description>
			<content:encoded><![CDATA[<p>Последней каплей на предыдущем хостинге стало то, что я WordPress обновлял больше часа по FTP. И всё из-за этих самых <strong>разрывов</strong>. В общем - сбэкапил я оттуда весь контент и бд, перенаправил NS&#8217;ы домена на Dreamhost, а сегодня утром поставил WP на новый хостинг, залил базу, попутно переведя её в UTF-8, и теперь наслаждаюсь жизнью.</p>
<p><em><strong>PS</strong>. По-моему теперь блог стал грузиться быстрее. :)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/07/16/moved-to-dreamhost/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>wptexturize bugfix plugin</title>
		<link>http://blog.fxposter.org/2008/05/19/wptexturize-bugfix-plugin/</link>
		<comments>http://blog.fxposter.org/2008/05/19/wptexturize-bugfix-plugin/#comments</comments>
		<pubDate>Mon, 19 May 2008 07:50:42 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Wordpress Filters]]></category>
		<category><![CDATA[Worpress Plugins]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=423</guid>
		<description><![CDATA[Вдогонку к предыдущему посту. В первом же комментарии заметили, что править wp&#8217;шные исходники в общем случае нежелательно. В принципе и не &#8220;в общем&#8221; случае тоже нежелательно. :) Поэтому - исправляемся. Теперь для решения проблемы из предыдущего поста достаточно скачать плагин (txt, zip).]]></description>
			<content:encoded><![CDATA[<p>Вдогонку к <a href="http://blog.fxposter.org/2008/05/18/wordpress-filters-wptexturize-bug/">предыдущему посту</a>. В первом же комментарии заметили, что править wp&#8217;шные исходники в общем случае нежелательно. В принципе и не &#8220;в общем&#8221; случае тоже нежелательно. :) Поэтому - исправляемся.</p>
<p>Теперь для решения проблемы из предыдущего поста достаточно скачать плагин (<a href="http://blog.fxposter.org/wp-content/uploads/2008/05/wptexturize_bugfix.phps">txt</a>, <a href="http://blog.fxposter.org/wp-content/uploads/2008/05/wptexturize_bugfix.zip">zip</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/05/19/wptexturize-bugfix-plugin/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Filters: баг в wptexturize</title>
		<link>http://blog.fxposter.org/2008/05/18/wordpress-filters-wptexturize-bug/</link>
		<comments>http://blog.fxposter.org/2008/05/18/wordpress-filters-wptexturize-bug/#comments</comments>
		<pubDate>Sun, 18 May 2008 16:33:06 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Wordpress Filters]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=420</guid>
		<description><![CDATA[Столкнулся с багом в WordPress&#8217;е при выводе постов, а точнее в &#8220;применении&#8221; к ним &#8220;типографики&#8221;: Как видите, кавычки в некоторых словах расставлены абсолютно не так, как нужно. В поисках решения проблемы обнаружил следующее - в WordPress&#8217;е на каждый блок выходных данных, будь то заголовок, сам пост, его комментарии или что-либо еще, навешиваются фильтры, которые определенным [...]]]></description>
			<content:encoded><![CDATA[<p>Столкнулся с багом в WordPress&#8217;е при выводе постов, а точнее в &#8220;применении&#8221; к ним &#8220;типографики&#8221;:</p>
<p><a class="nyroModal" href="http://blog.fxposter.org/wp-content/uploads/2008/05/wptypo.png" title="Смотрим на кавычки"><img class="alignnone size-medium wp-image-421" src="http://blog.fxposter.org/wp-content/uploads/2008/05/wptypo-300x205.png" alt="wptexturize" width="300" height="205" /></a></p>
<p>Как видите, кавычки в некоторых словах расставлены абсолютно не так, как нужно. В поисках решения проблемы обнаружил следующее - в WordPress&#8217;е на каждый блок выходных данных, будь то заголовок, сам пост, его комментарии или что-либо еще, навешиваются фильтры, которые определенным образом изменяют блок - убирают теги, заменяют одни символы на другие и т. д.</p>
<p>В данном случае меня интересовал блок <code>the_content</code> (в данном случае понятие &#8220;блок&#8221; можно интерпретировать как &#8220;функция WP, которая возвращает некий контент&#8221;), который выводит содержимое поста. В файле <code>wp-includes/default-filters.php</code> можно увидеть, какие фильтры применяются к этому блоку:</p>
<pre><code class="php">add_filter('the_content', 'wptexturize');
add_filter('the_content', 'convert_smilies');
add_filter('the_content', 'convert_chars');
add_filter('the_content', 'wpautop');
add_filter('the_content', 'prepend_attachment');</code></pre>
<p>Методом проб и ошибок было установлено, что найденный мной баг &#8220;создает&#8221; фильтр <code>wptexturize</code> (в WP &#8220;фильтр&#8221; - это функция, которая принимает 1 аргумент - входящий текст, и возвращает обработанный текст). Функция нашлась в файле <code>wp-includes/formatting.php</code>. Она выполняет &#8220;типографскую&#8221; работу, при этом пропуская всё, что находится между тегами <code>pre</code>, <code>code</code>, <code>kbd</code>, <code>style</code> и <code>script</code>. В теории&#8230; На практике - нихрена она не пропускает, если внутри одного из этих тегов будет какой-либо другой тег (что, в принципе, возможно, но встречается редко, а случай pre &gt; code система хавает на ура), либо если внутри какого-нибудь из этих тегов встретится \[.*\] - вот такой кусок (у меня этим куском был <code>[<span class="string">'comment_post_ID'</span>]</code>, например). Почему так - не могу знать (мне вообще непонятно зачем наряду с тегами <code>&lt;.*&gt;</code> рассматривать еще и <code>\[.*\]</code>), но факт остается фактом. Улучшенная версия этого файла находится <a href="http://blog.fxposter.org/wp-content/uploads/2008/05/formatting.phps">здесь</a> (у меня WP 2.5.1, если что).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/05/18/wordpress-filters-wptexturize-bug/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Subscribe to Comments и OpenID в WordPress</title>
		<link>http://blog.fxposter.org/2008/05/18/subscribe-to-comments-and-openid-in-wordpress/</link>
		<comments>http://blog.fxposter.org/2008/05/18/subscribe-to-comments-and-openid-in-wordpress/#comments</comments>
		<pubDate>Sun, 18 May 2008 11:03:45 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Worpress Plugins]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/?p=418</guid>
		<description><![CDATA[Совершенно случайно обнаружил, что у меня нифига не работает WP&#8217;шный плагин Subscribe to Comments, хотя раньше проблем с ним вроде не было. Проверка того &#8220;что не так&#8221; и исправление этого всего у меня заняла добрые два часа&#8230; Сначала грешил на WP 2.5, несовместимость таблиц и прочее - нифига, в бд всё, что нужно есть, но [...]]]></description>
			<content:encoded><![CDATA[<p>Совершенно случайно обнаружил, что у меня нифига не работает  WP&#8217;шный плагин <a href="http://txfx.net/code/wordpress/subscribe-to-comments/">Subscribe to Comments</a>, хотя раньше проблем с ним вроде не было. Проверка того &#8220;что не так&#8221; и исправление этого всего у меня заняла добрые два часа&#8230;</p>
<p>Сначала грешил на WP 2.5, несовместимость таблиц и прочее -  нифига, в бд всё, что нужно есть, но вот только сам факт подписки на комментарий туда заноситься не хотел ну вообще никак. Debug показал, что обработчику subscribe&#8217;ов вместо данных, введенных в форму коммента приходит &#8220;пустота&#8221; - абсолютно пустой $_POST. Глянув в строку адреса - обнаружил там длиннющую строку со всякими не сильно понятными значениями. Что ж, смотрим $_GET&#8230;</p>
<p>После просмотра, стало понятно, в чем затык - виной всему был <a href="http://wordpress.org/extend/plugins/openid">OpenID-плагин</a>, который для аутентификации пользователя выполнял всякие редиректы на другие сайты, после чего поток управления возвращался обратно в WP, однако все POST-данные оказывались потерянными. Нужные, по мнению OpenID-плагина, данные передавались теперь через GET, но OpenID, к сожалению, ничего не знал о плагине Subscribe to Comments и никаких данных о том, подписался ли пользователь на текущий пост, не передавал.</p>
<p>Решить проблему получилось с двух подходов. В первом я пытался сделать так, чтобы проверки OpenID выполнялись после того, как добавится подписка. После некоторых раздумий и просмотра того, как реализовывается подписка, стало понятно, что из этого способа ничего не выйдет. Поэтому пришлось лезть в исходники OpenID-плагина и искать то место, где создаются данные, хранимые в &#8220;сессии OpenID-аутентификации&#8221; и которые передаются обратно на сайт.</p>
<p>Довольно быстро это место нашлось - функция comment_tagging в файле logic.php:</p>
<pre><code class="php">$this-&gt;start_login( $openid_url, '/wp-login.php', 'commentopenid',
  array(
    'wordpressid' =&gt; $comment['comment_post_ID'],
    'redirect_to' =&gt; get_permalink( $comment['comment_post_ID'] ),
  )
);</code></pre>
<p>Добавляем сюда нужные нам поля, а именно поле subscribe:</p>
<pre><code class="php">$this-&gt;start_login( $openid_url, '/wp-login.php', 'commentopenid',
  array(
    'wordpressid' =&gt; $comment['comment_post_ID'],
    'redirect_to' =&gt; get_permalink( $comment['comment_post_ID'] ),
    'subscribe'   =&gt; isset($_POST['subscribe']) ? $_POST['subscribe'] : null,
  )
);</code></pre>
<p>После чего лезем в плагин Subscribe to Comments, находим функцию add_subscriber и меняем следующую строку:</p>
<pre><code class="php">if (($_POST['subscribe'] == 'subscribe' &amp;&amp; is_email($email)) || $previously_subscribed) {</code></pre>
<p>На такую:</p>
<pre><code class="php">if (($_REQUEST['subscribe'] == 'subscribe' &amp;&amp; is_email($email)) || $previously_subscribed) {</code></pre>
<p>После чего работоспособность подписки на комментарии восстановится.</p>
<p><em><strong>PS</strong>. Так что, если вы задавали вопросы, подписались на комментарии и не получили ответа - зайдите на страничку поста - может быть я вам уже ответил. :)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2008/05/18/subscribe-to-comments-and-openid-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Плагины для WordPress</title>
		<link>http://blog.fxposter.org/2007/12/07/wordpress-plugins/</link>
		<comments>http://blog.fxposter.org/2007/12/07/wordpress-plugins/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 20:50:21 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Разное]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/12/07/wordpress-plugins/</guid>
		<description><![CDATA[Сколько раз и на каком количестве блогов поднималась эта тема - не сосчитать. И все же я попробую поднять её еще разок. Я не собираюсь описывать кучи плагинов, нет. Я просто опишу те плагины, которые сейчас стоят у меня и попробую проанализировать их ценность на среднестатистическом блоге. Пожалуй, начнем: Akismet Чекалка комментариев на спам. Отлавливает [...]]]></description>
			<content:encoded><![CDATA[<p>Сколько раз и на каком количестве блогов поднималась эта тема - не сосчитать. И все же я попробую поднять её еще разок. Я не собираюсь описывать кучи плагинов, нет. Я просто опишу те плагины, которые сейчас стоят у меня и попробую проанализировать их ценность на среднестатистическом блоге.</p>
<p>Пожалуй, начнем:</p>
<ul>
<li>
<h4><a href="http://akismet.com/">Akismet</a></h4>
<p>Чекалка комментариев на спам. Отлавливает спам достаточно хорошо, хотя иногда хотелось бы, чтобы она это делала получше. Для работы понадобится <a href="http://wordpress.com/api-keys/">WordPress API Key</a>. Этот плагин идет, если мне не изменяет память, в комплекте с WP, так что ничего ниоткуда дополнительно скачивать не прийдется. Включение, на мой взгляд, обязательно. Спама бывает много.</li>
<li>
<h4><a href="http://www.feedburner.com/fb/a/help/wordpress_quickstart">FeedBurner FeedSmith</a> и <a href="http://blog.slaven.net.au/wordpress-plugins/wordpress-feed-locations-plugin/">Feed Locations</a></h4>
<p>Если вас устраивают возможности стандартного RSS-потока, который выдает по умолчанию WP -можете переходить к следующему пункту. Если же вы хотите получить кучу бонусов - регимся в FeedBurner и ставим эти плагины.</li>
<li>
<h4><a href="http://blog.jodies.de/archiv/2004/11/13/recent-comments/">Get Recent Comments</a></h4>
<p>Выводит список последних комментариев. Еслихочется такую штуку, а ковырятся в кодах лень - можете поставить. Мое мнение - чисто на любителя.</li>
<li>
<h4>Подсветка кода</h4>
<p>Если вы программист и хотя бы периодически пишете посты с включениями кода - рекоммендую обзавестись плагином, который этот самый код будет подсвечивать. Я использую Сагалаевский <a href="http://softwaremaniacs.org/soft/highlight/">highlight.js</a>. Есть еще <a href="http://kpumuk.info/projects/wordpress-plugins/codecolorer/">CodeColorer</a> от kpumuk&#8217;а и, думаю, еще куча разных плагинов в этой категории.</li>
<li>
<h4><a href="http://ebroder.net/livejournal-crossposter/">LiveJournal Crossposter</a></h4>
<p>Теперь меня могут читать и френдить ЖЖ&#8217;шники. Здесь все строго на любителя. Рекомендовать поставить этот плагин смысла особо не вижу. В категорию &#8220;необходимые&#8221; его отнести ну никак нельзя.</li>
<li>
<h4><a href="http://robm.me.uk/projects/plugins/wordpress/now-reading/">Now Reading</a></h4>
<p>Показывает книги, которые вы читали, читаете и собираетесь прочитать. Инфу берет с Амазона. Также строит некоторое подобие галереи всех ваших книг. Мне плагин нравится, только сейчас я вот никак не придумаю - куда бы выводить красиво хотя бы текущие книги&#8230;</li>
<li>
<h4><a href="http://uplift.ru/wordpress/">One-Face Comments</a></h4>
<p>Я про One-Face <a href="http://blog.fxposter.org/2007/10/27/one-face/">писал</a>&#8230; Решайте сами&#8230;</li>
<li>
<h4><a href="http://cybernetnews.com/recommended-tags-for-wordpress/">Recommended Tags</a> и <a href="http://www.neato.co.nz/wordpress-things/tag-managing-thing">Tag Managing Thing</a></h4>
<p>Дополнения ко встроенным в WP &gt;= 2.3 функциям тегов. Первая подбирает теги по тексту поста, вторая выводит список (облако) тегов под полем ввода поста для быстрого выбора нужных тегов. С одной стороны, плагины вроде как и нужные, с другой - они у меня работают, но пользуюсь ими я крайне редко, т.к. найти что-то в облаке тегов мне возможным не представляется, много у меня их слишком&#8230; :(</li>
<li>
<h4><a href="http://txfx.net/code/wordpress/subscribe-to-comments/">Subscribe To Comments</a></h4>
<p>Подписка на комментарии&#8230; На мой взгляд, один из самых нужных плагинов! Настоятельно рекоммендую!</li>
<li>
<h4><a href="http://www.w-a-s-a-b-i.com/archives/2006/02/02/wordpress-related-entries-20/">Related Posts</a></h4>
<p>Недавно поставил у себя&#8230; Хочу вот спросить - а нужно ли оно?</li>
<li>
<h4><a href="http://www.skippy.net/blog/plugins/">WordPress Database Backup</a></h4>
<p><a href="http://gluek.info/2007/08/17/pro-nash-hosting/">Читаем Gluek&#8217;а</a>, понимаем, что бэкапы - это святое&#8230; И ставим плагин.</li>
</ul>
<p>И вот хочу так ненавязчиво попросить всех - <strong>не ставьте себе плагин <a href="http://ajaydsouza.com/wordpress/plugins/snap-preview-anywhere/">SnapShots</a></strong>, это он только на вид кажется очень удобным, на деле - жутко раздражает!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/12/07/wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress 2.2</title>
		<link>http://blog.fxposter.org/2007/05/30/wordpress-22/</link>
		<comments>http://blog.fxposter.org/2007/05/30/wordpress-22/#comments</comments>
		<pubDate>Wed, 30 May 2007 02:22:45 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/05/30/wordpress-22/</guid>
		<description><![CDATA[Обновился до последнего WP. Из явно полезных нововведений могу выделить одно - виджеты на сайдбар теперь интегрированы в админку (раньше для этого был плагин). Попробовал я этим нововведением воспользоваться и&#8230; В общем - на текущей теме эти виджеты работают совсем не так, как хотелось бы, а жаль. :( Список всех нововведений, да и вообще, официальный [...]]]></description>
			<content:encoded><![CDATA[<p>Обновился до последнего WP. Из явно полезных нововведений могу выделить одно - виджеты на сайдбар теперь интегрированы в админку (раньше для этого был плагин). Попробовал я этим нововведением воспользоваться и&#8230; В общем - на текущей теме эти виджеты работают совсем не так, как хотелось бы, а жаль. :(</p>
<p>Список всех нововведений, да и вообще, официальный релиз этой версии WP можете посмотреть <a href="http://wordpress.org/development/2007/05/wordpress-22/">здесь</a>.</p>
<p><em><strong>PS</strong>. У меня сегодня контрольная по культурологии, к которой я практически не готов. Пожелайте мне удачи.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/05/30/wordpress-22/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Habari</title>
		<link>http://blog.fxposter.org/2007/03/22/habari/</link>
		<comments>http://blog.fxposter.org/2007/03/22/habari/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 21:50:07 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Habari]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Блог]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/03/22/habari/</guid>
		<description><![CDATA[Вот такое название имеет движок, который претендует на звание WordPress-киллера. О нем я сегодня узнал из блога Slaff&#8217;а, хотя он и раньше намекал о нем. При первом взгляде на скриншоты никаких особо положительных эмоций у меня не возникло. Я бы даже сказал, что в вордпрессе все сделано явно удобнее и симпатичнее. Ну раз внутренняя обертка [...]]]></description>
			<content:encoded><![CDATA[<p>Вот такое название имеет движок, который претендует на звание WordPress-киллера. О нем я сегодня узнал из <a href="http://www.slaff.net/2007/03/22/habari-pervyie-skrinshotyi.html">блога Slaff&#8217;а</a>, хотя он и раньше намекал о нем.</p>
<p>При первом взгляде на скриншоты никаких особо положительных эмоций у меня не возникло. Я бы даже сказал, что в вордпрессе все сделано явно удобнее и симпатичнее.</p>
<p>Ну раз внутренняя обертка не впечатлила - решил полезть в коды, посмотреть, что там и как. Порадовало хорошее проектирование. Все на ООП, куча классов, всё красиво, в отличии от дизайна. Но так как slaff говорит, что дизайн будет еще переделан - есть надежда, что в итоге проект окажется хорошим, сейчас проект вообще еще в альфа версии.</p>
<p>Текущие недостатки, которые я тут выкопал:</p>
<ol>
<li>Глючит при включении mbstring вместо обычных функций работы со строками</li>
<li>В админке - Manage -&gt; Comments дает только approve&#8217;ить, что коммент не спам, редактирование или удаление комментов отсутствует как класс :)</li>
<li>Опять же - в админке нельзя удалить пост, но тут хотя бы кнопка для этого есть (нерабочая она пока что)</li>
<li>Зависит от темы, но все же - на главной странице нет ни одной ссылки на админку<br />
<em>Хм&#8230; Щас форма логина появилась, но раньше ее 100% не было</em></li>
<li>Разницы между Page и Post не уловил - либо пока что Page&#8217;ы вообще не пашут, либо тут что-то сильно глючит :)</li>
<li>Справа висит непонятный текст, говорящий &#8220;About&#8221; - ну логично, страничка о себе. Проблема в том, что этот эбаут ссылкой не является :)</li>
<li>Ну и т.д. тут много всего пока что править нужно&#8230; Надо у slaff&#8217;а узнать, как туда тестером устроится :)</li>
</ol>
<p>Но не все так плохо - проект еще в альфа-версии, но он уже работает, им уже можно пользоваться (хоть и с <strong>очень </strong>большой натяжкой). Думаю, не-программисту будет в принцпе все равно, какой движок юзать. И если это действительно будет так - я, наверное, перейду на Хабари - написан он все-же красивее.</p>
<p><em>PS. Теперь бы выкопать где-нибудь хостинг с PHP5 и включенными PDO и PDO_MySQL&#8230;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/03/22/habari/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>WordPress 2.1.1</title>
		<link>http://blog.fxposter.org/2007/02/21/wordpress-211/</link>
		<comments>http://blog.fxposter.org/2007/02/21/wordpress-211/#comments</comments>
		<pubDate>Wed, 21 Feb 2007 21:33:09 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/02/21/wordpress-211/</guid>
		<description><![CDATA[Вышел WordPress 2.1.1. Себе уже поставил. Особо отличий не заметил. PS. Как оказалось - есть люди, которые так и не поняли, что ссылка &#8220;Меню&#8221; справа вверху там не просто так стоит, а еще и выполняет некоторые функции :) PPS. Препод все-таки разрешил делать RSS ридер. Уговаривать пришлось долго, но разрешил :)]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/development/2007/02/new-releases/">Вышел</a> WordPress 2.1.1. Себе уже поставил. Особо отличий не заметил.</p>
<p><em>PS. Как оказалось - есть люди, которые так и не поняли, что ссылка &#8220;Меню&#8221; справа вверху там не просто так стоит, а еще и выполняет некоторые функции :)</em></p>
<p><em>PPS. Препод все-таки разрешил делать RSS ридер. Уговаривать пришлось долго, но разрешил :) </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/02/21/wordpress-211/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Highlight.js</title>
		<link>http://blog.fxposter.org/2007/02/04/highlightjs/</link>
		<comments>http://blog.fxposter.org/2007/02/04/highlightjs/#comments</comments>
		<pubDate>Sun, 04 Feb 2007 02:09:15 +0000</pubDate>
		<dc:creator>fxposter</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.fxposter.org/2007/02/04/highlightjs/</guid>
		<description><![CDATA[Добавил у себя в блоге подсветку кода. Пример - мой предыдущий пост. PS. Ивану Сагалаеву респект ;)]]></description>
			<content:encoded><![CDATA[<p>Добавил у себя в блоге <a href="http://softwaremaniacs.org/soft/highlight/">подсветку кода</a>. Пример - мой <a href="/2007/02/04/php-unicode-when/">предыдущий пост</a>.</p>
<p><em>PS. Ивану Сагалаеву респект ;)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.fxposter.org/2007/02/04/highlightjs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
