<?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>Kichrum&#039;s Blog &#187; Программирование</title>
	<atom:link href="http://kichrum.org.ua/category/tech/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://kichrum.org.ua</link>
	<description>Взгляд изнутри</description>
	<lastBuildDate>Sat, 21 Apr 2012 21:29:46 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Разворачивание сокращенных ссылок из Твиттера</title>
		<link>http://kichrum.org.ua/t-co-urls-in-twitter-11-11-2011.html</link>
		<comments>http://kichrum.org.ua/t-co-urls-in-twitter-11-11-2011.html#comments</comments>
		<pubDate>Fri, 11 Nov 2011 07:01:15 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[ВКонтакте]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=1773</guid>
		<description><![CDATA[С появлением у Твиттера новой сокращалки ссылок t.co, меня, как соавтора Кросспостера из Твиттера во ВКонтакте, заспамили просьбами сделать развертывание этих ссылок, чтоб В Контакт публиковался чистый полный URL. Но я не видел в этом большой проблемы, пока супербезопасный ВКонтакте не начал считать все эти ссылки фишинговыми. Долго терпел, но теперь наконец набросал развертывание этих [...]]]></description>
			<content:encoded><![CDATA[<p>С появлением у Твиттера новой сокращалки ссылок t.co, меня, как соавтора <a title="Объединяем В Контакте и Twitter в PHP" href="http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html">Кросспостера из Твиттера во ВКонтакте</a>, заспамили просьбами сделать развертывание этих ссылок, чтоб В Контакт публиковался чистый полный URL. Но я не видел в этом большой проблемы, пока супербезопасный <a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a> не начал считать все эти ссылки фишинговыми. Долго терпел, но теперь наконец набросал развертывание этих ссылок за каких-то минут пять.</p>
<p>Сперва хотел делать переход по ссылке, смотреть, куда переадресовывается. Но быстро откинул эту идею. Правильней же будет использовать API сокращалки. Но времени тратить на изучение ненужного в дальнейшем API не хотелось. К тому же у каждой сокращалки свой API, а не плохо было бы расшифровывать все сокращенные ссылки. Поэтому вместо сайта dev.<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>.com я полез в гугл и нашел <span id="more-1773"></span>прекрасный <a title="Untiny" href="http://untiny.me/">untiny.me</a> &#8211; готовый сервис развертывания сокращенных URL. Ссылки &#8220;API&#8221; на нем я не заметил (хотя она есть), а полез сразу в исходники страницы &#8211; но и там всё достаточно просто и понятно.</p>
<p>Решено было не изобретать велосипед, а использовать их базу сокращалок. И вот первая и главная строчка решения проблемы готова:</p>
<pre class="prettyprint">$response = simplexml_load_file('http://untiny.me/api/1.0/extract/?url='.$short_url);</pre>
<p>Теперь в переменной <em>$response-&gt;org_url</em> хранится длинная ссылка, полученная из короткой <em>$short_url</em>.</p>
<p>Дальше &#8211; просто отключим вывод ошибок (собачкой, на всякий пожарный &#8211; вдруг Untiny грохнется), обернем это в функцию и дело в шляпе.</p>
<p>Ах да, у многих же сохранилась привычка со времен &#8220;Твиттера без t.co&#8221; резать ссылки через сторонние bit.ly, goo.gl и прочие. Вместе с t.co получается, что ссылка сокращается не один раз, а два и даже больше. Некоторые спаммеры пропускают свою вредоносную ссылку через одну, вторую, третью резалку и только потом публикуют ее в Тви (который, наконец, пропускает уже сокращенную ссылку через свой t.co). Поэтому запустим рекурсию, пока Untiny не начнет выдавать ошибки вместо ссылок:</p>
<pre class="prettyprint">function untiny($short_url) {
  $response = @simplexml_load_file('http://untiny.me/api/1.0/extract/?url='.$short_url);
  $result = $response-&gt;org_url;
  if(strstr($result, 'http://'))
    return untiny($result);
  else
    return $short_url;
}</pre>
<p>Со ссылкой разобрались, но нам же надо не просто её развернуть, а и найти её в сообщении, а потом заменить на &#8220;правильную&#8221; ссылку. Пишем вторую функцию.</p>
<p>На вход подаем сообщение, на выход &#8211; тоже сообщение, но с измененной ссылкой. Используем о ужас регулярки. =) Примерно так найдем t.co-ссылку:</p>
<pre class="prettyprint">preg_match("#http:\/\/t\.co\/(\w+)#", $message, $regex)</pre>
<p>а потом заменим её на развернутую:</p>
<pre class="prettyprint">preg_replace("#http:\/\/t\.co\/(\w+)#", untiny($regex[0]), $message)</pre>
<p>Почему именно t.co? А всё равно твиттер по своим API и RSS (как в случае с моим кросспостером) отдает все ссылки именно так.</p>
<p>А что же будет с сообщением, содержащим больше одной ссылки? Всё поломается &#8211; все ссылки будут развернуты так же, как первая. Это плохо. Добавляем в preg_replace последний параметр лимит и запускаем в цикл пока ссылки на t.co есть:</p>
<pre class="prettyprint">while(preg_match("#http:\/\/t\.co\/(\w+)#",$message, $regex)) {
  $short_url = $regex[0];
  $message = preg_replace("#http:\/\/t\.co\/(\w+)#", untiny($short_url), $message, 1);
}</pre>
<p>Чтоб не страдать от отсутствия доступа в Untiny, искусственно лимитируем использование функции untiny() десятью запусками, и оборачиваем для удобства в функцию:</p>
<pre class="prettyprint">function untiny_message($message) {
  if(strstr($message, 'http://')) {
    $i = 10;
    while(preg_match("#http:\/\/t\.co\/(\w+)#",$message, $regex) &amp;&amp; $i--) {
      $short_url = $regex[0];
      $message = preg_replace("#http:\/\/t\.co\/(\w+)#", untiny($short_url), $message, 1);
    }
  }
  return $message;
}</pre>
<p>Теперь, достаточно передать в функцию untiny_message() сообщение из Твиттера и сохранить сообщение с развернутыми ссылками, которое вернет эта функция. Например, так:</p>
<pre class="prettyprint">$message = untiny_message($message);</pre>
<p>Получилось местами не очень гуманно, но быстро в реализации, просто и понятно.</p>
<p>Кросспостер с этой функцией можно скачать здесь: <strong><a rel="attachment wp-att-1774" href="http://kichrum.org.ua/t-co-urls-in-twitter-11-11-2011.html/vtweet02">tvkontakte 0.2i</a></strong> (<a title="Инструкция по использованию скрипта" href="http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html">инструкция тут</a>).</p>
<p>Предыдущая версия по прежнему тут: <a href="http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html/vtweet-2">tvkontakte 0.1i</a>.</p>
<p>Приятного использования!</p>
<p><strong>UPD:</strong> Реализовано и на <a href="http://2vkontakte.ru/">ТуВконтакте.ру</a>.<br />
Инвайты:</p>
<ul>
<li>XHpJinnz3tOgAlq2g22dK6ZkmWz0eX4Y</li>
<li>IWVjMEcs72owV0bt93InH9GUfv58tIO4</li>
<li>V31kIrOnlFGlbe8fqMB1aOSVz1ZYyH8m</li>
<li>4G9JBZi1b78LI3L6rZQHohS9oKI5AXxn</li>
<li>gSo4jVNw7CkdIL6Dt2ltta5iqbjqqdRM</li>
</ul>
<p><strong>UPD (26.03.2012):</strong> По всей видимости, ООО &#8220;<a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a>&#8221; отключило поддержку UserAPI. На всегда или нет &#8211; не известно, как и то, будет ли работа восстановлена позже. Но если работа сайта durov.ru не возобновится (на его основе и работает скрипт), то скорее всего шансов не останется&#8230; ТуВконтакте.ру аналогично не работает.</p>
                                                        <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/t-co-urls-in-twitter-11-11-2011.html/feed</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>О чём шепчут администраторам? WP Whisper 1.0</title>
		<link>http://kichrum.org.ua/wp-whisper-v1-0-09-05-2011.html</link>
		<comments>http://kichrum.org.ua/wp-whisper-v1-0-09-05-2011.html#comments</comments>
		<pubDate>Mon, 09 May 2011 08:39:38 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Whisper]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[блог]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=1642</guid>
		<description><![CDATA[Во первых, поздравляю всех с великим праздником &#8211; с Днём Победы! Для нас этот день уникален тем, что это трагичный и скорбный, но в то же время светлый праздник. Спасибо нашим дедушкам и бабушкам, героям ВОВ!
Теперь ближе к теме. Ты сталкивался когда-нибудь с комментариями, в которых основной смысл ограничивается упрёком автору в его орфографии или [...]]]></description>
			<content:encoded><![CDATA[<p><em>Во первых, поздравляю всех с великим праздником &#8211; с Днём Победы! Для нас этот день уникален тем, что это трагичный и скорбный, но в то же время светлый праздник. Спасибо нашим дедушкам и бабушкам, героям ВОВ!</em></p>
<p>Теперь ближе к теме. Ты сталкивался когда-нибудь с комментариями, в которых основной смысл ограничивается упрёком автору в его орфографии или грамматике? Или вот пишешь ты коммент, долго пишешь, умный-заумный такой комментарий, чуть ли не на тома разбивать нужно. Потом отправляешь, не глядя&#8230; И уже сохраненное на сервере сообщение перечитываешь и понимаешь, что припустился ошибки или досадной опечатки. Бывало? И что тогда? Конечно проще забить, но я иногда, в особо нечитабельных случаях, пишу следующий комментарий, мол &#8220;автор, исправь то-то там-то, а этот коммент удали&#8221;. А автора и след простыл. И висят оба коммента месяцами. А люди читают, спотыкаются: один коммент непонятен, другой &#8211; вовсе не информативный&#8230;</p>
<p>И тут приходит такой Kichrum и говорит: &#8220;Ребята! Ставьте в свои блоги <a title="WP Whisper - плагин обратной связи через комментарии" href="http://kichrum.org.ua/projects/wp-whisper"><strong>мой плагин</strong></a> &#8211; и жить станет лучше!&#8221; В этой статье мы <strong>вместе напишем плагин</strong> для <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a>, обеспечивающий прямую связь с автором прямо через комментарии.</p>
<p><span id="more-1642"></span>Вчера ночью <a title="Идея для Хабра и блоговых движков в блоге Тормоза" href="http://brokenbrake.biz/2011/05/08/whisper">Тормоз написал у себя в блоге об идее</a>: что если к форме добавления комментария прикрутить флажок &#8220;только для автора&#8221;? И пусть такой комментарий, адресованный персонально автору, не мозолит глаза обычным читателям, а доставляется строго &#8220;по адресу&#8221;. Ведь это решит сразу все перечисленные выше проблемы.</p>
<p>Мне идея понравилась на столько, что я тут же загорелся желанием её реализовать. Не в глобальных масштабах, конечно, но простенький плагин для себя и для <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> написать точно стоило.</p>
<p>Заморачиваться с отправкой мыла через плагин я не стал. Всё же стоит отделять мух от котлет: пусть <a title="У меня лично такая есть. И плагины такие существуют бесплатные, так что разберешься" href="http://kichrum.org.ua/about/contact">форма обратной связи</a> тихонько выполняет свои функции, ну а встроенная система комментирования &#8211; свои. Что есть в комментариях <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a>, но далеко не всегда используется блогерами? <strong>Премодерация!</strong> Более того, я очень не уважаю сайты, у которых все комментарии проходят модерацию перед публикацией. Надеюсь, своим плагином я ещё и увеличу количество блогеров, отказавшихся от премодерации всех комментариев.</p>
<p>Так вот, я решил, что достаточно было бы в <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> <a title="Мой второй плагин для WordPress" href="http://kichrum.org.ua/projects/wp-whisper">комментарии &#8220;персонально администратору&#8221; отправлять просто на жесткую премодерацию</a> (естественно, администратор не должен такие комментарии аппрувить, ведь они не для этого предназначаются).</p>
<p>Сложней всего было разобраться с формой отправки комментария. Идеальный вариант был бы, если галочка &#8220;только автору&#8221; будет появляться примерно непосредственно перед кнопкой отправки комментария. Но в моей доисторической версии шаблона, который переделывать мне не хочется вот уже несколько лет, всех таких прелестей жизни нет. Иначе идеально подошел бы вариант работы с <em>$args['comment_notes_after']</em>, но я решил не искать легких путей, извратиться и воспользоваться тем, что есть. Перехватил действие <em>comment_form</em>. Вписал в него следующее:</p>
<pre class="wp-prettyprint">echo "\n"
    . '&lt;p class="only_author_flag"&gt;' // Стиль для абзаца с флажком - p.only_author_flag - можно настроить через style.<a href="http://kichrum.org.ua/tag/css" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CSS">css</a>
    . '&lt;input id="only_author_flag" type="checkbox" name="only_author_flag" value="true" /&gt;' // id флажка также #only_author_flag
    . '&lt;label for="only_author_flag" title="'
    // Текст, отображаемый при наведении курсора на описание к флажку:
    . 'Например, если в комментарии содержится указание на ошибку в тексте или просьба исправить предыдущий комментарий... Обратная связь в общем'
    . '"&gt;'
    // Текст описания флажка:
    . 'Обращение к автору блога (не публиковать для всех)'
    . '&lt;/label&gt;'
    . '&lt;/p&gt;';</pre>
<p>То есть банально просто вывод флажка ниже формы. <em>comment_form</em> запускается сразу перед закрывающим тегом <em>&lt;/form&gt;</em>, так что действие кнопки отправки комментария распространяется и на наш флажок.</p>
<p>Далее нам необходимо профильтровать комментарии, отправленные с установленным флажком и без такового. В листинге выше указано <em>name=&#8221;only_author_flag&#8221;</em> и <em>value=&#8221;true&#8221;</em>, значит, будем работать с элементом <em>$_POST['only_author_flag']</em>, и в нем хранится <em>true</em>, если галочка стоит.</p>
<p>Возьмем сначала фильтр <em>preprocess_comment($commentdata)</em> и допишем к тексту отмеченного комментария примечание, что он действительно отправлен на жесткую премодерацию (а не по решению движка или антиспам-фильтров):</p>
<pre class="wp-prettyprint">if($_POST['only_author_flag'] == 'true')
    $commentdata['comment_content'] =
        // Комментарии автору будут помечаться этим текстом:
        "&lt;blockquote&gt;[Комментарий доступен только автору блога]&lt;/blockquote&gt;\n" // (Выглядит как цитата)
        . $commentdata['comment_content'];
    return $commentdata;</pre>
<p>Так мы &#8220;отделили&#8221; обычную премодерацию от &#8220;обратной связи&#8221;. Затем отфильтруем на <a href="http://kichrum.org.ua/tag/spam" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  спам">спам</a>, повторы, лишние ссылки и т.д. и в последнюю очередь проверим через фильтр <em>pre_comment_approved($approved)</em>, не установлен ли флаг. Если установлен, присваиваем ему статус &#8220;hold&#8221; (или просто нолик). Если нет &#8211; возвращаем статус, полученный проверками, произведенными ранее (в т.ч. антиспамами и другими плагинами).</p>
<pre class="wp-prettyprint">if($_POST['only_author_flag'] == 'true')
    return 0; // Строгая отправка комментария на модерацию
else
    return $approved; // Сохранение комментария по правилам антиспамов и прочих встроенных систем</pre>
<p>Вот такой простенький, но полезный плагин у нас получился (надо еще правда разбросать по функциям и присвоить их к фильтрам и действию). Посмотреть на флажок в работе <a href="#postcomment" title="Ссылка ведет на форму добавления нового комментария, если что">можно прямо тут</a>. Скачать готовый <a title="Скачать плагин шёпота администратору" href="http://kichrum.org.ua/projects/wp-whisper/wp-whisper-2">плагин <strong>WP Whisper</strong> можно здесь</a>.</p>
<p>Это уже второй мой плагин. Первый, <a title="Страница плагина WP FreePrice" href="http://kichrum.org.ua/projects/wp-freeprice">магазин свободных цен для WordPress</a>, не вызвал шквал пользователей и разочаровал меня. Возможно, это <a title="АОдинПэйники у меня в блоге были..." href="http://kichrum.org.ua/shop-of-free-price-v1-0-14-01-2011.html#comment-8730">из-за A1Pay</a>, который в последствии очень подвел своим неадекватным поведением. Но на тот плагин я потратил больше времени и сил. На второй уже сильно не напрягался вовсе. &#8220;KISS&#8221; типа, ага. ;)</p>
<p>Если тебе понравилась статья, можешь поблагодарить, купив <a title="Купить плагин WP Whisper по свободной цене" href="http://kichrum.org.ua/projects/wp-whisper/wp-whisper-2"><strong>ВП Шепот по свободной цене</strong></a>.</p>
<p>P. S. Пару слов об изменениях на блоге. <a title="Виджет твиттера" href="http://kichrum.org.ua/twitter-widgets-02-02-2011.html">Лента влюбленных</a> удалена по <a title="Пикин написал..." href="http://kichrum.org.ua/twitter-widgets-02-02-2011.html#comment-10264">просьбам трудящихся</a>, для разгрузки священной коровы пользователей Windows. Такая <a title="Старые новые фичи" href="http://kichrum.org.ua/blog-features-13-12-2010.html">фича моего блога</a>, как  &#8221;Пишут обо мне&#8221;, тоже не прижилась: никто из влиятельных людей (способных повлиять хотя бы на результаты поиска <a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a>) не напрягался со ссылкой на меня. Остальные же старались напрасно. Скоро буду менять потихоньку политику блога, пожалуй&#8230;</p>
                                                        <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/wp-whisper-v1-0-09-05-2011.html/feed</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Twitter Widgets</title>
		<link>http://kichrum.org.ua/twitter-widgets-02-02-2011.html</link>
		<comments>http://kichrum.org.ua/twitter-widgets-02-02-2011.html#comments</comments>
		<pubDate>Wed, 02 Feb 2011 12:35:04 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[блог]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=1448</guid>
		<description><![CDATA[Со времен, когда я завел блог в Твиттере, я начал писать в большой блог значительно реже. Последние полтора года и вовсе ловил себя на мысли, что блог не расслабляет, а наоборот: я прикладываю определенные усилия, дабы &#8220;держать планку&#8221; и публиковать хоть что-то. И планка такая установилась на 4 постах в месяц. Довольно символично: фактически каждую [...]]]></description>
			<content:encoded><![CDATA[<p>Со времен, когда я завел <a href="http://kichrum.org.ua/tag/twitter">блог в Твиттере</a>, я начал писать в <a title="Kichrum's Blog - ты на нем, скорее всего, можно не кликать :)))" href="http://kichrum.org.ua">большой блог</a> значительно реже. Последние полтора года и вовсе ловил себя на мысли, что <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> не расслабляет, а наоборот: я прикладываю определенные усилия, дабы &#8220;держать планку&#8221; и публиковать хоть что-то. И планка такая установилась на <strong>4 постах в месяц</strong>. Довольно символично: фактически каждую неделю новый пост.</p>
<p>За всю историю существования блога, я падал ниже этой планки дважды: всего по три новой записи в месяц я осилил в <a title="Записи за март 2009" href="http://kichrum.org.ua/2009/03">марте позапрошлого года</a> и вот <a title="Все записи за январь 2011" href="http://kichrum.org.ua/2011/01">в прошлом месяце</a>. Странно, ведь времени свободного было много, как никогда: почти две недели &#8220;зимних каникул&#8221;. Таким образом, я доказал сам для себя, что если я ничем не нагружен насильно, моя продуктивность снижается ещё больше. Хотя, как и все люди, я откладываю некоторые дела на свободное время, в свободное время я их никогда не выполняю. Поэтому я и <a title="Ненависть к выходным впервые проявилась в далеком 2008-м" href="http://kichrum.org.ua/nenavizhu-vyxodnye-23-09-2008.html">ненавижу выходные</a>.</p>
<p>Чтоб как-то смягчить своё частое отсутствие на kichrum.org.ua, я поставил виджет, он выводил сюда последние три записи из моего Твиттера. Якобы &#8220;свежие новости моей жизни&#8221; или &#8220;кратко о главном&#8221;. И вот на этих каникулах Твиттер заблокировал доступ к себе с моего сервера, от чего мои сайты потеряли возможность публиковать свежие статусы, которые брались через RSS, да и вообще <a title="Кросспостинг накрылся медным тазом :(" href="http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html">работать с Twitter API</a>.<span id="more-1448"></span></p>
<p>Когда я писал этот виджет впервые, я ещё не имел практики тесной работы с HTML, <a href="http://kichrum.org.ua/tag/css" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CSS">CSS</a> и <a href="http://kichrum.org.ua/tag/javascript" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a>, поэтому мне почему-то казалось, что единственно возможное решение репостинга записей микроблога в <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> &#8211; <a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">PHP</a>-скрипт, работающий с RSS. Теперь же, когда сервак забанен, мне пришлось пересмотреть свое отношение ко всему этому.</p>
<p>Сам <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a> предоставляет <a title="Виджеты Twitter для твоего сайта" href="http://twitter.com/about/resources/widgets/widget_profile">готовое решение</a>. Но моя аватарка над статусами и этот &#8221;Join the conversation&#8221; внизу мне не нравится, да и занимает много места в сайдбаре, а не несет никакой информации, что не есть хорошо.</p>
<div class="wp-caption aligncenter" style="width: 557px"><img title="Сравнение разных версий виджетов Twitter" src="http://s011.radikal.ru/i316/1102/b5/a3d3c947f610.jpg" alt="Сравнение разных версий виджетов Twitter" width="547" height="316" /><p class="wp-caption-text">Сравнение разных версий виджетов <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a></p></div>
<p>Получилось уж точно не хуже, чем было, не так ли? (В плане интеграции в дизайн) :)</p>
<p>Вырезать верхний и нижний неинформативный блок очень просто. Достаточно в style.<a href="http://kichrum.org.ua/tag/css" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CSS">css</a> шаблона или прямо перед скриптом, который генерирует Твиттер по ссылке выше, добавить следующее:</p>
<pre class="prettyprint">&lt;style type="text/<a href="http://kichrum.org.ua/tag/css" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  CSS">css</a>"&gt;
/* Выбираем верхний блок */
.twtr-hd,
/* Выбираем нижний блок */
.twtr-ft
/* Отключаем отображение выбранных блоков */
{ display: none; }
&lt;/style&gt;</pre>
<p>Если виджетов на странице несколько, как у меня, желательно использовать айдишки (#twtr-widget-1, #twtr-widget-2), но это не обязательно.</p>
<p>Вообще <em>display: none</em> &#8211; весьма полезная штука для многих виджетов с интернета. Авторы так и норовят впихнуть в свои разработки рекламу или копирайты. Теперь ты знаешь, как от этого быстро и просто избавиться. ;) Я использовал такой подход с <a title="Описан в фичах блога" href="http://kichrum.org.ua/blog-features-13-12-2010.html">KichATM WebMoney</a> (сейчас временно убрал с сайдбара), при раздаче <a title="Акция Skype-халява" href="http://kichrum.org.ua/skype-halyava-05-06-2009.html">ваучеров Skype</a> (акция закончилась, посему увидеть уже тоже нельзя), в <a title="Когда-то и такой виджет был в моем сайдбаре" href="http://kichrum.org.ua/eurovision-moskva-17-05-2009.html">рейтинге участников Евровидения-2009</a> (здесь использовалось на ряду с обработкой DOM-модели через <a href="http://kichrum.org.ua/tag/javascript" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a>) и прибегал к этому много раз по работе.</p>
<p>В самом низу моего сайдбара можно найти &#8220;Ленту влюбленных&#8221;: анимированный поток строчек с признаниями в любви простых людей, таких же, как я и ты. Просто сообщения от людей, которые хотят поделиться своими чувствами со всеми:</p>
<blockquote>
<ul>
<li>люблю тебя очень сильно!!!</li>
<li>учись хорошо.я очень тебя люблю.</li>
<li>сегодня 7 месяцев, как мы вместе.. костик, я тебя люблю!</li>
<li>хрюшка моя ,люблю тебя ! доброе утро</li>
<li>сегодня др у моей мамули. очень тебя люблю, мам.=)) тепла, здоровья и позитива тебе.</li>
<li>первый день последнего месяца зимы &#8211; кажется, я его люблю. по многим причинам, в том числе и по этой.. -скоро веснаааа!</li>
<li>&#8230;</li>
</ul>
</blockquote>
<p>Не знаю, как тебе, а мне бесконечный поток таких вот радостных сообщений постепенно поднимает настроение! Иногда зайду к себе в <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> и читаю, читаю, читаю&#8230;</p>
<p>Как же это реализовано? Откуда берутся сообщения? Да опять же &#8211; это банальный <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a> Widget! На этот раз &#8211; <a title="Twitter Search Widget" href="http://twitter.com/about/resources/widgets/widget_search">по поиску</a>. В данный момент поиск для этой ленты влюбленных происходит по запросу: <em>люблю -&#8221;не люблю&#8221; её OR его OR тебя OR своего OR свою</em>. То есть ищем слово &#8220;люблю&#8221; дополненное указанием на живое существо (чтоб было меньше всяких &#8220;люблю рекламу&#8221;, &#8220;люблю телевизор&#8221;) и пропуская твиты о нелюбви к кому-либо. Такие виджеты как нигде кстати будут смотреться, например, на сайтах знакомств!</p>
<p>В общем, за сетью микроблогов скрывается огромный потенциал. Нужно лишь правильно к этому подойти. А как бы применил (или применяешь) твиттер ты?</p>

<div class='advertisement'>Если ты студент и тебе скучно по вечерам, <a href='http://rabota.slando.com.ua/kiev/839_1.html'>подработка</a> после занятий поможет утолить жажду к труду и новым ощущениям.<br />
<br />
Чтоб была площадка для размещения таких вот виджетов, можно подучить, <a href='http://sitemaste.ru/'>как делать сайты</a> самостоятельно.</div>
                                                         <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/twitter-widgets-02-02-2011.html/feed</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Магазин свободных цен WP FreePrice v1.0</title>
		<link>http://kichrum.org.ua/shop-of-free-price-v1-0-14-01-2011.html</link>
		<comments>http://kichrum.org.ua/shop-of-free-price-v1-0-14-01-2011.html#comments</comments>
		<pubDate>Fri, 14 Jan 2011 20:45:10 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[FreePrice]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[деньги]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=1393</guid>
		<description><![CDATA[Поздравляю всех со Старым Новым годом! Долго я думал, что бы такого подарить своему читателю в новогодние праздники. Уже и конкурс планировал с призами, и просто так подарки&#8230; Но решил как всегда не уходить глубоко в материальные ценности, а просто поделиться тем, чего и сам себе давно хотел. Этот релиз был назначен ещё на 31 [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Поздравляю всех со Старым Новым годом!</strong> Долго я думал, что бы такого подарить своему читателю в новогодние праздники. Уже и конкурс планировал с призами, и просто так подарки&#8230; Но решил как всегда не уходить глубоко в материальные ценности, а просто поделиться тем, чего и сам себе давно хотел. Этот релиз был назначен ещё на <a title="Тогда я был &quot;занят&quot; другими, более весёлыми делами" href="http://kichrum.org.ua/itogi-2010-goda-plany-na-2011-31-12-2010.html">31 декабря</a> (к тому времени уже всё было готово), но отложился аж до сегодня, ведь то праздники, то сессия (завтра последний экзамен).</p>
<p>В общмем, <strong>я разработал <a title="WP Free Price - магазин свободных цен" href="http://kichrum.org.ua/projects/wp-freeprice">свой первый плагин для WordPress</a></strong>, что уже событие. И конечно же, он не мог быть не связанным напрямую с деньгами. Такой уж я корыстный&#8230; Магазинов под эту <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a>-систему уже существует несметное количество: сложные и простые, платные и бесплатные<del>, тонкие и толстые</del>&#8230; Я же задумался о такой функции, которая и без того есть в любом современном <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> &#8211; <strong>прикрепление файлов к материалам</strong>. Наверняка каждый блогер хоть раз сталкивался с этой функцией. Но прикреплять файлы при небольших бюджетах не так уж и выгодно &#8211; хостеры ведь берут денежку и за хранение файлов, и за скачивание их. Поэтому многие перешли на дурацкие depositfiles, <a title="Обмен файлами на Kichrum's Blog" href="http://upload.kichrum.org.ua/">ifolder</a> и прочие, в ущерб своим пользователям, ради личной выгоды.</p>
<p>Я подумал: почему бы не попросить руки помощи напрямую у тех, ради кого всё это выкладывается  - у своих читателей? А может быть, даже полностью отказаться от всяких левых шопов и партнерок, где ты можешь быть забанен за просто-так без возврата средств? Ведь в твоих руках мощный инструмент &#8211; <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a>! С <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a>, как известно, можно сделать многое, но вот <strong><a href="http://kichrum.org.ua/projects/wp-freeprice">магазин свободных цен</a></strong> на этом движке &#8211; это точно новшество, не имеющее аналогов в интернете (по крайней мере я не нашел именно того, что мне надо).</p>
<p><span id="more-1393"></span>Идею я вынашивал ещё с лета. Именно тогда появилась <a title="Скрипт магазина свободных цен Йерка" href="http://brokenbrake.biz/Yerka">&#8220;Йерка&#8221; Тормоза</a>. Всем она мне понравилась, кроме нескольких пунктов:</p>
<ul>
<li>для каждого файла нужно создавать отдельный магазин;</li>
<li>работа только через FTP;</li>
<li>невозможность простого интегрирования в сайт (только автономной страничкой или извращаясь с html);</li>
<li>скудный список способов оплаты (<a href="http://kichrum.org.ua/tag/webmoney" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WebMoney">WebMoney</a> и LiqPay).</li>
</ul>
<p>Последнее, признаться, не критично, но раз уж я обошел и этот пункт &#8211; почему бы не записать его в недостатки? :)</p>
<p>Изначально я вообще хотел нагло стырить куски кода Йерки и переделать их под плагин. Но <del>совесть заела</del> почитав исходники Йерки, передумал. То ли Тормоз пишет не всё так же красиво, как свой <a title="Рекламный движок Тормоза" href="http://kichrum.advengine.e-autopay.com/">Daos</a>, то ли ушли те времена, когда разобраться и переделать чужой код для меня было проще, чем написать что-то свое.</p>
<p>Немного позже на Хабре мне встретился сервис <a title="Деловое предложение творческим людям" href="http://a1pay.ru/solutions/pay_what_you_want/">&#8220;Свободная цена&#8221; от A1Pay</a>. Написано, что установка за 5 минут. Но я не разобрался и за 10. Позже я вернулся к нему, уже более внимательно почитал мануал и мне чем-то понравилось. Хоть администрация там <del>ублюдки</del> не очень приветлива, да и сам сервис <del>говно</del> требует доработок, но функционал, нужный мне, работает. А добавить к этому всему подробную инструкцию &#8211; и вот, готов новый движок магазина.</p>
<p>К тому же я понял, что не плохо всё таки научиться писать плагины под <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a>. <a title="Я же пишу сокращалку ссылок" href="http://kichrum.org.ua/glavnoe-nachat-24-12-2010.html">Уровня знания PHP</a> вроде уже должно хватить для столь несложной задачи.</p>
<p>Тогда я открыл Hello Dolly, как пример, <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> Codex, как мануал, и начал творить свой первый плагин с нуля. Что меня удивило, за первую же ночь был реализован весь основной функционал, что сейчас составляет процентов 50 от всего скрипта. Это, собственно, возможность оплаты и бесплатного скачивания. Творение окрестил незамысловато: <a title="Плагин магазина свободных цен" href="http://kichrum.org.ua/projects/wp-freeprice">WP FreePrice</a>.</p>
<p>Кстати, работать с API <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> &#8211; одно удовольствие. Не взирая на то, что код самого движка просто ужасен, под API можно кодить легко и непринужденно. И Codex неплох, и высокая популярность WP в Интернете &#8211; радует.</p>
<p>На следующий вечер засел ещё на пару часиков: добавил опции и настройки к плагину. И позже пару раз возвращался к разработке, находя различные лаги. Последнее, что я добавил в первую версию &#8211; зачатки статистики.</p>
<p>Статистики изначально я не планировал вообще. Делал всё как в Getting Real. Но потом понял, что e-mail у покупателей всё же не плохо сохранять для дальнейшего уведомления о новых версиях. Сохранять-то сохраняем (покупателей терять не желательно с самого начала &#8211; обидеться могут), вот только работать с этими данными пока нельзя &#8211; оставил для следующего релиза.</p>
<p>Настройки подробно описаны <a title="Инструкция на странице плагина WP FreePrice" href="http://kichrum.org.ua/projects/wp-freeprice#instruction">в инструкции по установке</a> плагина на свой сайт. Кстати, протестировано с версии WP2.8.</p>
<p><strong>Что уже можно с плагином WP <a href="http://kichrum.org.ua/tag/freeprice" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  FreePrice">FreePrice</a>:</strong></p>
<ul>
<li><a title="Скачать WP FreePrice по свободной цене или бесплатно" href="http://kichrum.org.ua/projects/wp-freeprice/wp-freeprice-2">Скачать его</a>, конечно же, по свободной цене или бесплатно, с открытым исходным кодом. Тут же &#8211; <strong>проверка его в действии</strong>.</li>
<li>Почитать <a title="Официальная страница плагина" href="http://kichrum.org.ua/projects/wp-freeprice">подробности о WP FreePrice</a> и инструкцию по настройке на официальной странице.</li>
<li>Заменить все страницы скачивания прикрепленных к постам файлов (attachments) на страницы покупки их по свободной цене или бесплатно.</li>
<li>Посетителю предлагается поле для ввода цены от 1 рубля и выше (ограничение A1), большая кнопка &#8220;Оплатить&#8221;, а справа &#8211; маленькая кнопка &#8220;Лазейка для жадин&#8221;, что ведет на скачивание файла бесплатно.</li>
<li>При оплате или входе через Лазейку для жадин, файл автоматически скачивается на компьютер посетителя.</li>
<li>Работать как с ЧПУ, так и без него.</li>
<li>Давать ссылку на бесплатное скачивание файлов, добавляя к основной ссылке &#8220;<em>?free</em>&#8221; (или &#8220;<em>&amp;free</em>&#8220;, если нет ЧПУ). При переходе по этой ссылке файл скачивается, но его всё же можно оплатить уже после скачивания (типа &#8220;если понравилось&#8221;). Если файл продан, поле оплаты исчезает.</li>
<li>Убирать текст &#8220;Автор магазина свободных цен для <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a>: Kichrum.&#8221; через панель управления. Прошу оставить, как благодарность мне. =)</li>
<li>Отключать возможность бесплатного скачивания (кнопку &#8220;Лазейка для жадин&#8221;).</li>
<li>Изменять все тексты на странице прикрепленных файлов &#8211; название и описание файла, сервиса, сообщения об ошибке и удачной оплате, название кнопки &#8220;Лазейка для жадин&#8221; и т.п.</li>
<li>Не бояться за картинки &#8211; если они не заархивированы, действие скрипта на них не распространяется (просто я ужаснусля, когда увидел, что мой <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> продает мой сертификат от NetCracker).</li>
</ul>
<p>Что ещё (или вообще) нельзя с WP <a href="http://kichrum.org.ua/tag/freeprice" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  FreePrice">FreePrice</a>:</p>
<ul>
<li>Продавать плагин третьим лицам как свой продукт. Если хочешь поделиться &#8211; давай людям ссылку: <a href="http://kichrum.org.ua/projects/wp-freeprice">http://kichrum.org.ua/projects/wp-freeprice</a></li>
<li>Работать с базой покупателей, делать им рассылки (такую возможность планирую добавить позже).</li>
<li>Надеяться, что твой файл никогда не скачают бесплатно, если ты отключишь такую возможность в настройках.</li>
</ul>
<p>Последний пункт может ввести в недоумение. Да, ссылка с <em>?free</em> в конце ни к чему хорошему не приведет, если отключить халявку в настройках. Но остаются яркие лазейки, с которыми легко справятся некоторые люди. Я разделил бы их на три категории: а) хакеры; б) программисты на <a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">PHP</a>, которые не пожалеют пары минут на чтение исходного кода; в) люди, которые хоть раз что-то покупали через такой же магазин на твоем или другом сайте. С хакерами бороться я точно не буду &#8211; себе дороже, а надо будет &#8211; и не такие проекты взламывали. Программисты &#8211; молодцы, поэтому пусть пользуются на здоровье (знай наших). Ну а закрывать дыру от третьей категории просто бессмысленно: если человек уже купил что-то, он купит это снова, иначе &#8211; автор сам виноват, не оправдал ожиданий. Это я к тому, что о дырах знаю, а закрывать &#8211; влом. Если узнал и ты &#8211; просьба не рассказывать широкой публике. =)</p>
<p>Бета-тестеры уже также накидали мне несколько новых идей, да и у самого меня идеи текут ручьем. Чувствую не останется проект в Getting Real, а придется дописывать и расширять. Вот только не всё сразу. Пусть будет выбор, в конце концов: использовать простые (ранние версии плагина), или расширенные (будущие).</p>
<p>А мне &#8211; удачной сдачи экзамена завтра&#8230; С праздничком! :)</p>

<div class='advertisement'>Компания All-Biz предлагает широкий ассортимент в категории <a href="http://www.ua.all-biz.info/buy/goods/?group=1081245">мебель для кафе</a> и ресторанов с ценами, фотографиями и описаниями.<br />
Купить <a href='http://udacha-avtosklo.com.ua/'>автостекла в одессе</a> стало еще проще - через Интернет.<br />
Кстати, <a href='http://www.motorcraft.com.ua/category/25/'>мопеды в Одессе</a> тоже очень даже ничего...</div>
                                                         <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/shop-of-free-price-v1-0-14-01-2011.html/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Новые фичи моего блога и бесплатные бэклинки</title>
		<link>http://kichrum.org.ua/blog-features-13-12-2010.html</link>
		<comments>http://kichrum.org.ua/blog-features-13-12-2010.html#comments</comments>
		<pubDate>Mon, 13 Dec 2010 12:46:34 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WebMoney]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[халява]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=1288</guid>
		<description><![CDATA[За последнее время добавил несколько интересных фич на свой блог, которые так и остались без описания.
Рекламная строчка конечно самая значительная среди нововведений, поэтому фактически ей я посвятил интервью с Тормозом и даже новую страницу &#8211; реклама в блоге.
Кстати, страницу о блоге я тоже подредактировал. До этого она была неизменна долгие годы &#8211; всё описание было [...]]]></description>
			<content:encoded><![CDATA[<p>За последнее время добавил несколько интересных фич на свой <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a>, которые так и остались без описания.</p>
<p>Рекламная строчка конечно самая значительная среди нововведений, поэтому фактически ей я посвятил <a title="Интервью с автором рекламной строчки Daos" href="http://kichrum.org.ua/brokenbrake-interview-08-12-2010.html">интервью с Тормозом</a> и даже новую страницу &#8211; <a title="Все возможные виды рекламы в Kichrum's Blog" href="http://kichrum.org.ua/o-bloge/advertisement"><strong>реклама в блоге</strong></a>.</p>
<p>Кстати, страницу <a title="О блоге Кичрума" href="http://kichrum.org.ua/o-bloge"><strong>о блоге</strong></a> я тоже подредактировал. До этого она была неизменна долгие годы &#8211; всё описание было в будущем времени, ведь тогда еще блога как такового и не было. Принципы написания статей дополнились несколькими новыми, <a href="http://sarafannoeradio.org/analitika/473-social-media.html">предложенными</a> Чернец Вадимом на конференции Publishing Expo – 2010. Я их и раньше придерживался, но они были никак не задокументированы. Правда я по-прежнему не буду вставлять мультимедиа в каждую статью и использовать ключевики.</p>
<p>А еще меня похвалили: был бы мой <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> тематическим, он бы уже стал офигенно популярным. :P И ведь действительно, движение происходит, и только в положительную сторону: <strong>за 2010 год количество посещений моего сайта возросло в два раза</strong>, а <a href="http://kichrum.org.ua/proigral-s-razmaxom-09-01-2009.html#comment-4417" title="Посещалка блога на январь 2009 года">с начала 2009-го</a> &#8211; <strong>в 10 раз</strong>!<span id="more-1288"></span></p>
<h2>Здесь бывали</h2>
<p>В сайдбар справа добавил несложный виджетик &#8211; &#8220;Здесь бывали&#8221;. В моем блоге время от времени оставляют комментарии личности, которые могут быть известны многим. Почему бы этим не похвастаться? Написал его сам в ту же минуту, как появилась идея.</p>
<p>Вот исходник виджета:</p>
<pre class="prettyprint">&lt;ul&gt;&lt;li&gt;&lt;a title="Подтверждающие данный факт комментарии" href=&lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a>
$reads = array(
'http://kichrum.org.ua/privatbank-govno-c-25-07-2010.html#comment-3722&gt;Сотрудники ПриватБанка',
'ссылка_на#comment-2&gt;Кто написал коммент',
'ссылка_на_последний#comment-3&gt;Кто написал коммент');
echo $reads[rand(0, count($reads)-1)];
?&gt;
&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;ul&gt;&lt;li&gt;&lt;a title="Подтверждающие данный факт комментарии" href=&lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a></div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$reads = array(</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</div>
</pre>
<p>В одномерный массив вручную заношу список известных людей и вывожу одного, выбранного случайно. Не спорю, что это можно реализовать красивей. Так что не стоит писать &#8220;что за хрень&#8221;. Работает &#8211; не трогай. :)</p>
<h2>Пишут обо мне</h2>
<p>Еще один новый блок в сайдбаре &#8211; вывод последнего, кто опубликовал на меня открытую ссылку где-либо без noindex/nofollow. Соответственно, <strong>отныне каждый, кто выставит ссылку на <em>http://kichrum.org.ua</em> где-либо, автоматически получает бэклинк со всех страниц Kichrum&#8217;s Blog бесплатно!</strong></p>
<p>Клёво ведь получить халявные сквозняки только за ссылку в одном посте в блоге или на форуме?</p>
<p>Для реализации за основу взят плагин <a title="Плагин для WordPress Who linked me" href="http://coolidea.ru/2007/11/02/plagin-dlya-wordpress-who-linked-me/">Who linked me</a> (v 0.11). Чем мне не понравился исходный вариант?</p>
<ul>
<li>Работает с поиском по блогам Яндекса, а ведь я люблю <a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a>.</li>
<li>Выводит напрягучую ссылку на автора плагина.</li>
</ul>
<p>Если избавление от второго пункта нарушает авторские права (коими я пренебрег, как и все пользователи данного плагина), то вот первый пункт весьма серьезен. Яндекс.Блоги дает ужасный мусор в результатах, ведь учитываются и твиттер-блоги, и множество ГС, и, по-моему, даже nofollow. Ну а зачем я буду такое рекламировать, коль оно не принесет выгоду никому?</p>
<p>То ли дело, если выбрать <a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a> &#8211; Поиск по блогам!</p>
<pre class="prettyprint">// Открываем who_linked_me.<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a>, ищем строку 48:
$rss_str = 'http://blogs.yandex.ru/search.rss?link='. $site_url . '&amp;x_author=on&amp;author='. $excl_url;
// и заменяем ее на следующую:
$rss_str = 'http://blogsearch.<a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">google</a>.com/blogsearch_feeds?hl=en&amp;scoring=d&amp;ie=utf-8<strong>&amp;num=20</strong>&amp;output=rss&amp;partner=<a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">wordpress</a>&amp;q=link:'. $site_url;
// Вместо выделенной жирным &amp;num=20 можно поставить свое количество получаемых ссылок
// Строчка 61 у меня выглядит теперь так (но можно не изменять):
&lt;li&gt;&lt;a href="&lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> echo wp_filter_kses($item['link']); ?&gt;" title="Последним обо мне упомянул &lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> echo wp_filter_kses($item['dc']['creator']); ?&gt; на сайте &lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> echo wp_filter_kses($item['dc']['publisher']); ?&gt;"&gt;&lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> echo wp_filter_kses($item['title']); ?&gt;&lt;/a&gt;&lt;/li&gt;
// Ну а строчку 64 снес на фиг</pre>
<h2>KichATM <a href="http://kichrum.org.ua/tag/webmoney" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WebMoney">WebMoney</a></h2>
<p>Еще одна функция блога, которая не вписывается в тематику. Это целый терминал оплаты различных услуг за WMU! Создан он на основе виджета партнерской программы <a title="Партнерская программа" href="http://ukrbuy.com/partner/?session=244109133477">UkrBuy.Com</a>. Правда с нарушением всех правил, ведь для меня главное не вознаграждение, а удобство (не страшно, если забанят меня как партнера &#8211; виджет будет работать). Посему я воспользовался отсутствием защиты и убрал всё ненужное, оставив лишь, грубо говоря, список услуг к оплате. И успешно оплачиваю мобильный телефон и интернет через свой же сайт в пару кликов. Это у меня получается куда быстрей, чем через сам UkrBuy.</p>
<p>Как я убрал всё ненужное &#8211; можно увидеть в исходном коде страницы: в некоторые стили добавил <em>display:none;</em></p>
<p>Кстати, отличная мотивация не нарушать правила: тогда получается, что оплачиваешь все услуги не просто без комиссий, но и дешевле их стоимости на 1-2%! Ваучер на 85 для МТС, например, стоит, если не ошибаюсь, в магазинах до 90 грн. При этом для продления услуги &#8220;Супер&#8221; на 80 дней достаточно пополнить на 80 грн. Через виджет ты фактически потратишь (с учетом партнерского вознаграждения) лишь 79.20, а получаешь то же самое, что и за 90! Экономия, ёпта! =)</p>
<p>P.S. В виджет &#8220;Пишут обо мне&#8221;, если кто не понял, <strong>автоматически</strong> (без моего малейшего участия) берется верхняя (<strong>последняя</strong>) ссылка с <a href="http://blogsearch.google.com/blogsearch?hl=ru&#038;ie=UTF-8&#038;q=link:http://kichrum.org.ua&#038;scoring=d" title="Поиск упоминания kichrum.org.ua по блогам">этой страницы поиска Google</a>. Следует учитывать правила попадания ссылок туда&#8230;</p>
                                                        <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/blog-features-13-12-2010.html/feed</wfw:commentRss>
		<slash:comments>66</slash:comments>
		</item>
		<item>
		<title>Массовое приглашение в группу ВКонтакте по любому запросу</title>
		<link>http://kichrum.org.ua/massinvite-vk-group-19-03-2010.html</link>
		<comments>http://kichrum.org.ua/massinvite-vk-group-19-03-2010.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 14:56:43 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[ВКонтакте]]></category>
		<category><![CDATA[полезно]]></category>
		<category><![CDATA[спам]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=657</guid>
		<description><![CDATA[Стала однажды передо мной задача: пригласить много-много сумских абитуриентов в одну группу ВКонтакте. Надо было иметь возможность изменять параметры: страну, город, и год выпуска со школы людей, которых надо массово пригласить.
Естественно, первым делом полез на специализированные форумы и всё такое, но не так в этой сфере оказалось всё просто и прозрачно. Наткнулся на деньгосдирательства, а [...]]]></description>
			<content:encoded><![CDATA[<p>Стала однажды передо мной задача: пригласить много-много сумских абитуриентов в одну группу <a title="Всё о Вконтакте" href="http://kichrum.org.ua/tag/vkontakte">ВКонтакте</a>. Надо было иметь возможность изменять параметры: страну, город, и год выпуска со школы людей, которых надо массово пригласить.</p>
<p>Естественно, первым делом полез на специализированные форумы и всё такое, но не так в этой сфере оказалось всё просто и прозрачно. Наткнулся на деньгосдирательства, а всё, что бесплатно, просто не работает из-за частого изменения алгоритмов работы Вконтакта.</p>
<p>Сроки поджимали, а надо было сделать хоть что-то, работающее. UserAPI для групп до сих пор не существует, так что единственный способ, который я смог придумать &#8211; эмуляция действий человека. Писать свой браузер тоже не хотелось. Короче, результатом сего высокого полета моей мысли и лени стал простенький скрипт, написанный <strong>на <a href="http://kichrum.org.ua/tag/javascript" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a></strong>. Он банально <strong>приглашает всех пользователей, отображающихся на текущей странице результатов поиска</strong>.<span id="more-657"></span></p>
<p>Привожу листинг.</p>
<pre class="prettyprint">/*Mass invitation to the group by www.Kichrum.org.ua */
function inviteAll(){
    var links = document.getElementsByTagName('a'),
        i = 0, j = 0, inviteLinks = new Array(), tempLink;
    for(i = 0; i &lt; links.length - 1; i++)
        if(links[i].href.match('#invite')){
            tempLink = links[i].onclick + '';
            tempLink = tempLink.slice(17, -1);
            tempLink = tempLink.substr(0, tempLink.indexOf(';') + 1)
                .replace(/%20/, '');
            tempLink = tempLink.substr(0, tempLink.indexOf(';') + 1)
                .replace('s(event){', '');
            if(tempLink.match('invite'))
                inviteLinks[++j] = tempLink;
        }
    for(i = 1; i &lt; inviteLinks.length; i++)
        setTimeout(inviteLinks[i], i * 1000);
}</pre>
<p>Группы, в которых около 1000 не откликнувшихся на приглашения, могут <strong>блокироваться</strong> администрацией за <a href="http://kichrum.org.ua/tag/spam" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  спам">спам</a>! Значит, надо предусмотреть и легкое удаление тех, кто и не отказался от приглашения, и не принял его. Таких можно найти, перейдя по ссылкам Редактировать состав -&gt; Приглашения. Там придется или много кликать, или один раз выполнить следующий скрипт.</p>
<pre class="prettyprint">/*Mass removal not responded to invitations to the group by www.Kichrum.org.ua */
function deleteInvitesOnPage(){
    var links = document.getElementsByTagName('a'),
        i = 0, j = 0, deleteLinks = new Array(), tempLink;
    for(i = 0; i &lt; links.length - 1; i++)
        if(links[i].href.match('#')){
            tempLink = links[i].onclick+'';
            tempLink = tempLink.split('return%20');
            if(tempLink[1]){
                tempLink = tempLink[1];
                tempLink = tempLink.replace('}','');
                if(tempLink.match('cancelInvitation'))
                    deleteLinks[++j] = tempLink;
            }
        }
    for(i = 1; i &lt; deleteLinks.length; i++)
        setTimeout(deleteLinks[i], i * 300);
}</pre>
<h2><a name="links"></a>Запуск скрипта</h2>
<p>Скрипты можно запустить в Опере, просто захватив мышкой и <strong>перетащив</strong> следующие ссылки с этой страницы себе <strong>в закладки</strong>:</p>
<p style="text-align: center;font-size:18px;"><a href="javascript:_();function%20_(/*www.Kichrum.org.ua*/){var%20___=0,____=new%20Array(),__=document,________='a',_____,_______,______=__.getElementsByTagName(________);for(_______=0;_______&lt;______.length-1;_______++)if(______[_______].href.match('#invite')){_____=______[_______].onclick+'';_____=_____.slice(17,-1);_____=_____.substr(0,_____.indexOf(';')+1).replace(/%20/,'');_____=_____.substr(0,_____.indexOf(';')+1).replace('s(event){','');if(_____.match('invite'))____[++___]=_____;}for(_______=1;_______&lt;____.length;_______++)setTimeout(____[_______],_______*1000);}">Пригласить всех на странице</a></p>
<p style="text-align: center;font-size:18px;"><a href="javascript:_();function%20_(/*www.Kichrum.org.ua*/){var%20___='a',__=document,____=0,_____=new%20Array(),______,________,_______=__.getElementsByTagName(___);for(________=0;________&lt;_______.length-1;________++)if(_______[________].href.match('#')){______=_______[________].onclick+'';______=______.split('return%20');if(______[1]){______=______[1];______=______.replace('}','');if(______.match('cancelInvitation'))_____[++____]=______;}}for(________=1;________&lt;_____.length;________++)setTimeout(_____[________],________*300);}">Отменить все приглашения</a></p>
<h2>Инструкции по использованию</h2>
<p><strong>Массовые приглашения <a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a>:</strong></p>
<ol>
<li>Запустить браузер <strong>Opera</strong> последней версии (тестировалось на Opera 10.10).</li>
<li>Войти в группу, где ты являешься администратором.</li>
<li>Под аватаркой нажать &#8220;Пригласить в группу&#8221;.</li>
<li>В появившемся окошке нажать &#8220;Перейти к поиску&#8221;.</li>
<li>Задать параметры поиска в меню справа.</li>
<li>Нажать на &#8220;<strong>Пригласить всех на странице</strong>&#8221; в закладках.</li>
<li>Дождаться, пока последнему пользователю отправится приглашение и перейти на вторую страницу.</li>
<li>Скопировать текущий адрес URL, нажать на следующую страницу и повторять с п.6, пока не начнет появляться капча.</li>
<li>Зайти с другого аккаунта, перейти по скопированному адресу.</li>
<li>Повторить все действия, начиная с п.6.</li>
</ol>
<p><strong>Массовое удаление не откликнувшихся на приглашения в группу <a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a>:</strong></p>
<ol>
<li>Запустить браузер <strong>Opera</strong> последней версии (тестировалось на Opera 10.10).</li>
<li>Войти в группу, где ты являешься администратором.</li>
<li>Под аватаркой нажать &#8220;Редактировать состав&#8221; -&gt; &#8220;Приглашения&#8221;.</li>
<li>Нажать на &#8220;Отменить все приглашения&#8221;.</li>
<li>Обновить страницу (F5).</li>
<li>Повторять, начиная с п.4, пока не будут отменены все приглашения.</li>
</ol>
<p>В других браузерах скрипт не работает. Мне не принципиально, поэтому я и не заморачивался. Найдешь ошибку &#8211; пиши в комментах. Буду только рад.</p>
<p>С помощью этого скрипта мой <strong>деканат</strong> успешно раскручивает свою группу уже несколько месяцев. Он позволяет приглашать только узкий круг заинтересованных пользователей. Для тупого же спама лучше использовать программы типа vkBot.</p>
<p><strong>UPD (25.03.2010):</strong> Добавлена поддержка Opera 10.51.<br />
<strong>UPD (19.01.2011):</strong> <a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a> больше <a href="#comment-8662">нельзя приглашать людей, не находящихся в друзьях</a>. Проект заморожен.</p>
                                                        <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/massinvite-vk-group-19-03-2010.html/feed</wfw:commentRss>
		<slash:comments>217</slash:comments>
		</item>
		<item>
		<title>Как понравиться поисковикам? \ Немного SEO для WP</title>
		<link>http://kichrum.org.ua/seo-for-wordpress-15-09-2009.html</link>
		<comments>http://kichrum.org.ua/seo-for-wordpress-15-09-2009.html#comments</comments>
		<pubDate>Tue, 15 Sep 2009 08:24:44 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[полезно]]></category>
		<category><![CDATA[фриланс]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=264</guid>
		<description><![CDATA[Что-то я начал замечать, что показатели моего блога вначале росли, а потом вдруг перестали. И не растут, блин, что бы я ни делал. А не делал я ничего.
В прошлом году у меня был тИЦ 30. И стремительно рос вверх, но после изменений в системах Яндекса, упал до 20 и заморозился на этой отметке. А под [...]]]></description>
			<content:encoded><![CDATA[<p>Что-то я начал замечать, что показатели моего блога вначале росли, а потом вдруг перестали. И не растут, блин, что бы я ни делал. А не делал я ничего.</p>
<p>В прошлом году у меня был тИЦ 30. И стремительно рос вверх, но после изменений в системах Яндекса, упал до 20 и заморозился на этой отметке. А под конец весны и вовсе меня опустили до 10ки. При этом так подло поступили не только с большей половиной моих доменов, а и практически всех моих знакомых SEOшников обломали не менее. В один день. Я подозреваю, это всё из-за моего личного неуважения к Яндексу (его сервис &#8220;Народ.ру&#8221; вызывает грустные воспоминания&#8230;) И зря. Пришлось в зарегистрироваться у них снова, добавить мой бложек в <strong>webmaster.yandex.ru</strong>, подтвердить, что сайт мой. И вуа-ля: имею статистику от их поискового бота, а главное &#8211; на последнем АПе Яндекса (10 сентября, если не ошибаюсь) тИЦ снова подрос! Надеюсь, на этом он не остановится и продолжит своё шествие к вершинам Интернета.</p>
<p>Но в этой статье речь пойдёт всё-равно не о Яндексе (от последних событий я не стал его любить больше), а, естественно, о моим любимом поисковике &#8211; о Гугле. И именно эта статья <strong>начинает мою серию статей</strong>, безвозмездно посвящённых именно <a title="Google в моём блоге" href="http://kichrum.org.ua/tag/google">Google</a>, не просто как лучшей поисковой системе, но и универсальной социальной сети! <strong>Подпишись на <a href="http://feedburner.google.com/fb/a/mailverify?uri=kichrum">e-mail рассылку</a> (см. блок справа), чтоб не пропустить что-то интересненькое!</strong> (И чем дальше, тем полезней будут статьи).</p>
<p>Начну, как уже понятно по теме этой записи, из нескольких непринципиальных советов, <strong>как настроить свой <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> на <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> под этот поисковик</strong>, чтоб <a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a> тебя не ущемлял.</p>
<p><span id="more-264"></span>Точнее, совет будет один, но решение проблемы состоит из нескольких этапов. Проще говоря, <strong>позаботимся об исходящих ссылках со страниц</strong> сайта. Используем для этого три плагина и один хак.</p>
<p>Первый и главный генератор ссылок на левые ГС &#8211; несомненно, комментаторы. Поэтому для них мы поставим целых два плагина.</p>
<p>Первый &#8211; <a href="http://www.hybrid6.com/webgeek/plugins/wp-spamfree"><strong>WP-Spamfree</strong></a>. Его работа предельно понятна: он запрещает публиковать комментарии <a href="http://kichrum.org.ua/tag/spam" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  спам">спам</a>-ботам. Как? Основание &#8211; проверка влючённости в браузере комментатора cookie. Роботы фактически не способны их поддерживать в полной мере. Так же смотрятся другие параметры браузера и выставляется вердикт &#8211; робот или нет. Если да, посылает на фиг, полностью игнорирует запрос и обзывает спамером, если нет &#8211; публикует комментарий. Плюс в том, что без всяких картинок капчи и подтверждения личности. Минус &#8211; бывает обознаётся и посылает нафиг дорогих посетителей. Именно поэтому у меня так мало комментариев :) Зато нету кмментов &#8211; нету спама! Чего и требовалось добиться.</p>
<p>Второй рекомендуемый плагин от злобных комментаторов &#8211; <a href="http://www.fob-marketing.de/marketing-seo-blog/wordpress-nofollow-seo-plugin-nofollow-case-by-case.html"><strong>Nofollow Case by Case</strong></a>. В <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a> стандартно ссылки комментаторов шифруются за <strong>rel=&#8221;external nofollow&#8221;</strong>, которое действует как плащ невидимки для <a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a>. Но кто же будет любить твой <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a>, если ты так жестоко будешь поступать со своими настоящими читателями? Не хорошо. Отказываемся от NoFollow, делаем <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a> <a href="http://kichrum.org.ua/test-blog-dofollow-22-10-2008.html">DoFollow</a>!</p>
<p><a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a> подсчитывает все ссылки на твоей странице и распределяет её PageRank поровну между всеми страницами по этим ссылкам. На ссылки с атрибутом rel=&#8221;nofollow&#8221; это не распространяется, и кусочка PR такие сайты не получают. Но я же добрый вебмастер &#8211; почему бы не поделиться со своими комментаторами? Ведь это же их время &#8211; прочесть мою статью, потом ещё и прокомментировать. Вот я и решил <a href="http://kichrum.org.ua/pervye-posledstviya-dofollow-13-11-2008.html">раздавать свои показатели им безвозмездно</a>. Но что же делать с теми, кто прочитал статью через слово, написал какой-то бред, да ещё и высказал явное неудовлетворение моим творением? Такие люди не заслуживают моего драгоценного PR! Nofollow Case by Case позволяет прописать им персональное rel=&#8221;nofollow&#8221; путём добавления к ссылке текста /dontfollow.</p>
<p>Но этот /dontfollow мне тоже не полностью нравится. Что будет, если я однажды передумаю и деактивирую это плагин? Ссылки испортятся тем, что все будут вести на несуществующую страницу site.ru/dontfollow. Поэтому я подредактировал этот плагин. Достаточно в документе <strong>nofollow_case_by_case.<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a></strong> часть кода: &#8220;<strong>/\/dontfollow</strong>&#8221; (без кавычек) заменить на &#8221;<strong>/#dontfollow</strong>&#8221; (тоже без кавычек). Тогда к сайтам плохих комментаторов достаточно дописывать <strong>#dontfollow</strong> и ссылки будут рабочими всегда, так как всё, что после решётки будет просто игнорироваться.</p>
<p>Перейдём к хаку &#8211; <strong><a href="http://www.wordpressplugins.ru/faq/nofollow-in-blogroll.html">NoFollow в Blogroll</a></strong>. Я активный пользователь блогролла (стандартного раздела <a href="http://kichrum.org.ua/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  WordPress">WordPress</a>, позволяющего выставлять ссылки на интересные ресурсы Интернета). И вот что получается &#8211; на всех страницах размещено дохмного лишних ссылок. Чего мне делиться PR с bash.org.ru, если он не делится со мной? Поэтому берём и нажимаем в Blogroll на галочку &#8220;nofollow&#8221;, которая в стандартном пакете не предусмотрена. Предусмотреть &#8211; просто.</p>
<p>Открываем файлик <strong>wp-admin/edit-link-form.<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a></strong>, находим в нём такое:</p>
<pre class="prettyprint">&lt;tr&gt;
     &lt;th scope="row"&gt; &lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> _e('identity') ?&gt; &lt;/th&gt;</pre>
<p>&#8230;и дописываем перед ним этот блок:</p>
<pre class="prettyprint">&lt;tr&gt;
     &lt;th scope="row"&gt; follow &lt;/th&gt;
     &lt;td&gt;&lt;fieldset&gt;&lt;legend&gt; follow &lt;/legend&gt;
      &lt;label for="nofollow"&gt;
      &lt;input type="checkbox" name="follow" value="nofollow" id="nofollow" &lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> xfn_check('follow','nofollow'); ?&gt; /&gt;
      &lt;?<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> _e('nofollow') ?&gt;&lt;/label&gt;
     &lt;/fieldset&gt;&lt;/td&gt;
&lt;/tr&gt;</pre>
<p>Теперь в админке для каждой нужной ссылки в настройках XFN ставишь галочку напротив &#8220;nofollow&#8221; и получаешь то, что нужно. Я отделил таким образом все ссылки блогролла, кроме своих проектов, на которых важен PR, а также оставил DoFollow тем, кто соизволил поставить DoFollow-ссылку на меня.</p>
<p>Последний рекомендуемый плагин &#8211; <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/"><strong>Google (XML) Sitemaps Generator</strong></a>. Создаёт XML-карту сайта, ориентированную именно на <a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">Google</a>, MSN Search и Yahoo, хотя она точно так же хорошо подходит под другие поисковики. Поисковики читают в robots.txt ссылку на эту карту, заходят сразу в неё и дальше разбираются, с какой периодичностью и в каких приоритетах следует индексировать ту или иную страницу. Теперь можно быть уверенным, что страница, которая изменяется ежедневно, будет индексироваться чаще, чем старые заброшенные страницы, а не наоборот, как это часто бывает.</p>
<p>Осталось зарегистрироваться на <strong>webmaster.<a href="http://kichrum.org.ua/tag/google" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  google">google</a>.com</strong>, добавить туда ссылку на созданный <strong>xml-sitemap</strong> и ждать с моря погоды :)</p>

<div class='advertisement'>Не хочешь разбираться во всех тонкостях программирования? А зачем? Это уже делают студенты в <a href="http://plagiata.net.ru">курсовых работах по программированию</a>.<br />
Есть сайт, но нужен хостинг? Предлагаю твоему вниманию выгодные <a href="http://www.di-net.ru/collocation/colocation/">цены на услуги collocation</a>.<br />
Ну а если уже всё есть, <a href="http://www.creativeco.ru/">поисковая раскрутка сайта</a> тебе поможет сделать последние шаги к статусу "крутого веб-мастера".</div>
                                                         <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/seo-for-wordpress-15-09-2009.html/feed</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Объединяем В Контакте и Twitter в PHP</title>
		<link>http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html</link>
		<comments>http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html#comments</comments>
		<pubDate>Fri, 17 Jul 2009 09:17:05 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[ВКонтакте]]></category>
		<category><![CDATA[полезно]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/?p=156</guid>
		<description><![CDATA[Объединяем Твиттер и В Контакте и получаем&#8230; В Контер? Нет, Твиттанте&#8230; В общем, пусть каждый называет это по-своему, потому что недавно возмутились об отсутствии структуры &#8220;а дальше читатель пусть подумает сам&#8221; в моём блоге.
А пока ты только думаешь, Смирнов уже сделал&#8230; трансляцию статуса Twitter в свой аккаунт В Контакте. Да окрестил сие чудо  &#8220;tvkontakte 0.1&#8243;, [...]]]></description>
			<content:encoded><![CDATA[<p>Объединяем Твиттер и В Контакте и получаем&#8230; В Контер? Нет, Твиттанте&#8230; В общем, пусть каждый называет это по-своему, потому что недавно <a href="http://kichrum.org.ua/grand-football-in-sumy-11-07-2009.html/comment-page-1#comment-1650">возмутились</a> об отсутствии структуры &#8220;а дальше читатель пусть подумает сам&#8221; в моём блоге.</p>
<p>А пока ты только думаешь, Смирнов уже сделал&#8230; трансляцию статуса <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a> в свой аккаунт В Контакте. Да окрестил сие чудо  &#8220;tvkontakte 0.1&#8243;, да разрешил издеваться над творением своим&#8230; Во имя CTRLa, ALTa и святого DELa, Enter!</p>
<p>Вот я и поиздевался. Проблема его реализации в чём была &#8211; в том, что в ней <span style="text-decoration: line-through;">лисапеда не было</span> была проблема со ссылками в статусе. Он-то учёл, что долбать своих друзей постоянно обновляющимся одним и тем же статусом &#8211; признак дурного тона, но это всё-равно случается, если в статусах присутствуют ссылки. Что же тогда происходит&#8230;<span id="more-156"></span></p>
<ol>
<li>Скрипт читает RSS ленту с Твиттера, публикует последнее сообщение В Контакт.</li>
<li>Умный В Контакте распознаёт ссылки и делает их кликабельными, дописывая свои &lt;a href=&#8221;away.<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a>?&#8230;</li>
<li>Скрипт через заданный в cron промежуток времени заходит В Контакт и видит &#8211; &#8220;О Боже! Статус-то уже не такой, как последний на Твиттере, а я его до сих пор не обновил!&#8221; и быстренько обновляет.</li>
<li>В результате и скрипту покоя нет долгими утрами, когда я сплю, (нет, это не повод оставлять его без куска хлеба над головой, просто вырвалось), и друзьям покоя тоже нет &#8211; они в &#8220;Мои новости&#8221; будут каждые n минут будут видеть мой статус как новый и им это быстро надоест, в следствии чего закидают монитор камнями. И останусь я без друзей&#8230; Так, опять не туда.</li>
</ol>
<p>В общем, я изначально думал выполнять все действия В Контакта, чтоб составлять статус для сравнения и мне стало лень. Поэтому при обновлении скрипт в моей вариации записывает статус ещё и в отдельный файл, а потом сверяет последний в ленте со строкой в файле.</p>
<p>Минус такого решения очевиден (например, лишний геморрой с атрибутами файла и дополнительный пункт в настройках скрипта). Но плюс, помимо того, что не мучаю друзей, есть ещё один. Так я могу изменить статус В Контакте на свой, и пока я не напишу в <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a> что-то новое, он будет висеть, как так и надо.</p>
<p>В общем, хватит лирического отступления. Вот код <strong>vtweet.<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a></strong>.</p>
<pre class="prettyprint">&lt; ?
 /*
	tvkontakte 0.1i
	vkontakte.ru status updater from <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>
	made by Vladimir Smirnoff
	http://orl.sumy.ua
	mail@smirnoff.sumy.ua
	improved by Kichrum
	http://Kichrum.org.ua
 */
# Конфигурация - ОТРЕДАКТИРУЙ!
define ('<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">TWITTER</a>_USERNAME','MyLogin'); // MyLogin заменить на свой Логин в <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a>
define ('VKONTAKTE_LOGIN','user@mail.ua'); // user@mail.ua заменить на свой E-mail на Vkontakte.ru
define ('VKONTAKTE_PASSWORD','gfhjkm'); // gfhjkm  заменить на свой Пароль на Vkontakte.ru
define ('PREPEND_WORD','<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a>.com/Kichrum '); // <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a>.com/Kichrum  заменить на Слово,  которое будет перед статусом: максимальная длинна: 20 символов с пробелами = 160 во vkontakte - 140 в <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>
# Конфигурация выполнена.
# Дальше можно не читать :)
# Объявляем Дуровский UserAPI
class vkuserapi {
	private $curlh = null;
	public $uid = null;
	private $sid = null;
	public function __construct ($login,$password) {
		$this-&gt;curlh = curl_init();
		$request = 'http://login.userapi.com/auth?site=2&amp;login=force&amp;pass='.urlencode($password).'&amp;email='.urlencode($login);
		curl_setopt($this-&gt;curlh, CURLOPT_URL,$request);
		curl_setopt($this-&gt;curlh, CURLOPT_FAILONERROR, true);
		curl_setopt($this-&gt;curlh, CURLOPT_FOLLOWLOCATION, false);
		curl_setopt($this-&gt;curlh, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($this-&gt;curlh, CURLOPT_POST, false);
		curl_setopt($this-&gt;curlh, CURLOPT_HEADER, true);
		$auth_result = curl_exec($this-&gt;curlh);
		if (preg_match("/remixmid=(\d+)/", $auth_result, $matches)) $this-&gt;uid = $matches[1];
		if (preg_match("/.*;sid=(\w*)/", $auth_result, $matches)) $this-&gt;sid = $matches[1];
	}
	public function call ($func,$params) {
		curl_setopt($this-&gt;curlh, CURLOPT_HEADER, false);
		$request = 'http://userapi.com/data?act='.$func.'&amp;'.http_build_query ($params).'&amp;sid='.$this-&gt;sid;
		curl_setopt($this-&gt;curlh, CURLOPT_URL,$request);
		$result = curl_exec($this-&gt;curlh);
		return json_decode($result);
	}
	public function __destruct () {
		$request = 'http://login.userapi.com/auth?login=logout&amp;site=2&amp;sid='.$this-&gt;sid;
		curl_setopt($this-&gt;curlh, CURLOPT_URL,$request);
		curl_exec($this-&gt;curlh);
		curl_close ($this-&gt;curlh);
	}
}
# Берем статус со своей RSS-ленты на <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a>.com
$rss = simplexml_load_file('http://<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>.com/statuses/user_timeline/'.<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">TWITTER</a>_USERNAME.'.rss');
# Убираем лишнюю информацию
foreach ($rss-&gt;channel-&gt;item as $status) {
	if (strpos($status-&gt;title,'@')) continue; // Фильтр реплаев в <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a>
	$last_status_<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a> = str_replace (<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">TWITTER</a>_USERNAME.': ','',$status-&gt;title); break;
}
# Читаем последний обновлённый статус из файла vtweet.txt
$f=fopen(dirname(__FILE__).'/vtweet.txt','r');
$last_status_vkontakte = fread($f,512);
fclose($f);
# Если последний статус ещё не опубликован во В Контакте, публикуем и помечаем его как обновлённый
if (($last_status_vkontakte != $last_status_<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>) &amp;&amp; ($last_status_<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a> != NULL)) {
$vkontakte = new vkuserapi (VKONTAKTE_LOGIN,VKONTAKTE_PASSWORD); // Логинимся
$vkontakte-&gt;call ('set_activity',array('ts'=&gt;time(),'text'=&gt;PREPEND_WORD.$last_status_<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>)); // Обновляем статус
unset ($vkontakte); // Выходим из Vkontakte.ru
$f=fopen(dirname(__FILE__).'/vtweet.txt','w');
fwrite($f,$last_status_<a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">twitter</a>); // "Помечаем" статус как уже обновлённый
fclose($f);
echo 'Updatetd.';
}
else echo 'No update needed.'; // Если последний уже помечен, выводим внутреннюю ошибку.
# Завершаем работу программы.
?&gt;</pre>
<p>Плюс требуется создать файл <strong>vtweet.txt</strong>, положить его в папку со скриптом и прописать для него chmod 777. И в завершении всего прописать в <strong>crontab</strong> новою задачу, где указать адрес файла .<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a> и периодичность, с которой требуется обновлять статус. Например, я себе поставил <em>*/15 * * * *</em>, что означает запуск скрипта каждые 15 минут.</p>
<p><strong>Скачать всё архивом: <a rel="attachment wp-att-165" href="http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html/vtweet-2">tvkontakte 0.1i</a> (не забудь отредактировать нужные поля в vtweet.<a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">php</a>).</strong></p>
<p><strong>Нюансы</strong>, которые моя вариация перенимает у оригинала: версия установленного <a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">PHP</a> должна быть <strong>не ниже 5.1</strong>, должны быть подключены <strong>lib_curl</strong>, <strong>simple_xml</strong> и <strong>allow_url_fopen</strong> (за этим обращайся к хостинг-провайдеру), <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a>-профиль <strong>не должен быть приватным</strong>, хостинг-провайдер не должен быть <strong>забаненным</strong> В Контакте. Последнее случается, если хостинг имеет бесплатные/дешёвые тарифы или на нём хостился какой-нибудь горе-автор какого-нибудь сервиса для ВКонтакта. Например, такое такое горе случилось с masterhost.ru, когда на нём оказался зарегистрированным сайт vtwittere.ru.</p>
<p>Исходная версия скрипта от Владимира Смирнова: <a href="http://orl.sumy.ua/blog/198.html">Трансляция статуса твиттера в контакт</a> (<a href="http://orl.sumy.ua/copypaste/vtweet.php">сам код</a>).</p>
<p>Выбирай и пользуйся :)</p>
<p><strong>UPD:</strong> Исправил пару недочётов :)</p>
<p><strong>UPD (18.07):</strong> Через форму обратной связи (см. справа) можно присылать мне свои логины к Твиттеру и мыло/пароль к В Контакте &#8211; я пропишу у себя на сервере и будет у тебя всегда свежий статус В Контакте. Только поспеши, предложение не вечно!</p>
<p><strong>UPD (10.02.2011):</strong> Появился первый бесплатный веб-сервис для автоматического кросспостинга статусов из Твиттера во <a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a>! Пиши в обратную связь или комменты, а я на мыло отправлю ссылку.</p>
<p><strong>UPD (18.02.2011):</strong> Сервис теперь публичный! Сегодня (или даже вчера) открылся веб-сервис с удобным интерфейсом, названный как <a href="http://2vkontakte.ru" title="Репостинг из Твиттера во Вконтакте">ТуВконтакте.ру</a> и призванный объединить аккаунты пользователей <a href="http://kichrum.org.ua/tag/twitter" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Twitter">Twitter</a> и <a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a>. Теперь не нужно разбираться с хостингами, <a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">PHP</a> и Crontab.</p>
<p><strong>UPD (12.08.2011):</strong> С недавнего времени скрипт не работает на иностранных хостингах! Поддерживаются только хостинги стран СНГ. (В Контакте так борется со спамом и вирусами).</p>
<p><strong>UPD (11.11.2011):</strong> Увидела свет новая версия данного скрипта &#8211; <a href="http://kichrum.org.ua/t-co-urls-in-twitter-11-11-2011.html" title="Разворачивание сокращенных ссылок из Твиттера">с разворачивающимися ссылками</a>. Качать по желанию.</p>
<p><strong>UPD (26.03.2012):</strong> По всей видимости, ООО &#8220;<a href="http://kichrum.org.ua/tag/vkontakte" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ВКонтакте">ВКонтакте</a>&#8221; отключило поддержку UserAPI. На всегда или нет &#8211; не известно, как и то, будет ли работа восстановлена позже. Но если работа сайта durov.ru не возобновится (на его основе и работает скрипт), то скорее всего шансов не останется&#8230; ТуВконтакте.ру аналогично не работает.</p>

<div class='advertisement'>Вот вариант не плохого платного <a rel="postovoy" href="http://avihost.ru/">хостинга</a>, на котором можно даже <a rel="postovoy" href="http://avihost.ru/hosting-vds.html">VDS</a> заказать.<br />
<br />
А здесь можно подобрать себе другие <a href='http://6prog.net/'>скрипты php</a> для твоего сайта. Платные и бесплатные.</div>
                                                         <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/combine-vkontakte-twitter-php-17-07-2009.html/feed</wfw:commentRss>
		<slash:comments>76</slash:comments>
		</item>
		<item>
		<title>Программа из х/ф &#8220;Матрица&#8221;</title>
		<link>http://kichrum.org.ua/programma-iz-khf-matritsa-05-05-2009.html</link>
		<comments>http://kichrum.org.ua/programma-iz-khf-matritsa-05-05-2009.html#comments</comments>
		<pubDate>Tue, 05 May 2009 21:32:49 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[фильмы]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/programma-iz-khf-matritsa-05-05-2009.html</guid>
		<description><![CDATA[Давно что-то я не писал в блоге разных наборов буржуйских букв, называемых исходными кодами программ. А программирую я последнее время довольно много, как для универа, так и для души. Чаще всего на С и JavaScript, но иногда и на PHP, C++, а недавно вообще разбирался в готовом коде программы на Java&#8230; Да и не зря [...]]]></description>
			<content:encoded><![CDATA[<p>Давно что-то я не писал в блоге разных наборов буржуйских букв, называемых исходными кодами программ. А программирую я последнее время довольно много, как для универа, так и для души. Чаще всего на С и <a href="http://kichrum.org.ua/tag/javascript" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  JavaScript">JavaScript</a>, но иногда и на <a href="http://kichrum.org.ua/tag/php" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  PHP">PHP</a>, C++, а недавно вообще разбирался в готовом коде программы на Java&#8230; Да и не зря же я <a href="http://kichrum.org.ua/po-vashim-zayavkam-05-01-2009.html">поставил подсветку синтаксиса</a>? Надо бы ею воспользоваться.</p>
<p>Если кто следит за твиттером, заметили <a href="http://twitter.com/Kichrum/status/1690525037">этот пост</a>, где я написал, что сделал прогу с символами, которые сыпятся, как в фильме &#8220;Матрица&#8221;. Это было в перерыве между написанием отдельных функций для ОДЗ по теории алгоритмов. Как и большинство других моих программ, вышло скорей вредоносное приложение, чем полезное. И вредоносность Матрицы скорее не в том, что она очень глючная, а в том, что оторваться не возможно. :) Лично я запускаю временами и оставляю ее как заставку на экране. В принципе, желаемый эффект производит &#8211; я представляю себя офигенным хакером из Альфа-Центавра. Но стоит заметить, что сам фильм я ни разу так и не смотрел, поэтому любые сходства считать случайностью :)</p>
<p>В общем, вот код<span id="more-115"></span> на Си под <a href="http://in-72.org.ua/load/3-1-0-25">Borland С++</a>.</p>
<pre class="prettyprint">#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;dos.h&gt;
void main()
{
clrscr();
randomize();
_setcursortype(1);
int x,y,x1,y1,x2,y2;
int i,j;
x1=1;y1=1;x2=24;y2=79;
window(x1,y1,x2,y2);
textbackground(0); textcolor(15); gotoxy(30,12);
cprintf("Enter secret code: "); cscanf("%s");
getch();
textcolor(0);
for(i=55;i&gt;=30;i--)
{gotoxy(i,12);delay(20);cprintf("0");}
do
{
(random(2)==0)?textcolor(2):(random(2)==1)?textcolor(10):textcolor(7);
x=random(y2);
for(i=0;i&lt;random(x2-1)+(x2/2);i++)
for(j=0;j&lt;random(5);j++)
{
gotoxy(x+1,i+1);
putch(random(500));
gotoxy(x+1,i+1);
delay(100);
}
}
while (!kbhit());
getch();
clrscr();
textcolor(2); gotoxy(20,12);
cprintf("Congratulations! This computer was hacked.");
getch();
}</pre>
<p style="text-align: center"><img alt="Скриншот программы MATRIX" src="http://s45.radikal.ru/i108/0905/85/0da4cb4f61cd.jpg" /><br />
Скриншот программы MATRIX</p>
<p>Вначале просит &#8220;секретный код&#8221; &#8211; ввести любой набор символов. Я предпочитаю вводить 4-5 звездочек ;) Нажимаем Enter. Видим случайные символы, наслаждаемся. В любой момент нажимаем any key и получаем сообщение, что компьютер типа взломан :)</p>
<p><strong>Не забываем на окне ввода секретного кода нажимать Alt+Enter, чтоб развернуть программу на весь экран!</strong></p>
<p>Скачать скомпилированное приложение: <a href='http://kichrum.org.ua/programma-iz-khf-matritsa-05-05-2009.html/prilozhenie-kak-v-filme-matritsa/' rel='attachment wp-att-116' title='Приложение, как в фильме “Матрица”'>Приложение, как в фильме “Матрица”</a></p>
                                                        <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/programma-iz-khf-matritsa-05-05-2009.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>По вашим заявкам</title>
		<link>http://kichrum.org.ua/po-vashim-zayavkam-05-01-2009.html</link>
		<comments>http://kichrum.org.ua/po-vashim-zayavkam-05-01-2009.html#comments</comments>
		<pubDate>Mon, 05 Jan 2009 21:07:55 +0000</pubDate>
		<dc:creator>Kichrum</dc:creator>
				<category><![CDATA[Программирование]]></category>
		<category><![CDATA[блог]]></category>
		<category><![CDATA[деньги]]></category>
		<category><![CDATA[конкурсы]]></category>

		<guid isPermaLink="false">http://kichrum.org.ua/po-vashim-zayavkam-05-01-2009.html</guid>
		<description><![CDATA[По замечанию моего преподавателя программирования, высказанному комментарием к этому посту, поставил подсветку синтаксиса кода. В той же теме можете увидеть ее в работе.
Была идея выставить свой курсовик таким образом (379 строк непрокомментированного кода&#8230;) ;) Ведь я его уже сдал, в субботу, с чем меня, собственно, можно поздравлять! Мелкие подарки (ключи от автомобиля или квартиры где-то [...]]]></description>
			<content:encoded><![CDATA[<p>По замечанию моего преподавателя программирования, высказанному комментарием к <a href="http://kichrum.org.ua/javascript-externals-bez-rel-27-10-2008.html#comment-122">этому</a> посту, поставил подсветку синтаксиса кода. В той же теме можете увидеть ее в работе.</p>
<p>Была идея выставить свой курсовик таким образом (379 строк непрокомментированного кода&#8230;) ;) Ведь я его уже сдал, в субботу, с чем меня, собственно, можно поздравлять! Мелкие подарки (ключи от автомобиля или квартиры где-то в центре, мобильники с инкрустацией от Сваровски, золотые монеты 15-го века), как дополнение к поздравлениям по этому поводу, уже можно(!) слать на мой домашний адрес.</p>
<p>И еще пару пунктов не по теме&#8230;<span id="more-83"></span></p>
<p>1. Был сегодня в ЭКО-маркете. Сделал то, что кое-кто предложил на днях&#8230; Взял копченый сыр, который в косички заплетен &#8211; его упаковывают на месте. Содрал верхнюю наклейку со штрих-кодом и датой упаковки. И не удивился тому, что под ней есть еще одна &#8211; такая же. Естественно, ее там не должно быть! Сыр, который годен до 3.01.2009г. &#8220;перепакован&#8221; 5.01.2009г., что продлило его срок реализации еще на столько же&#8230;</p>
<p>Жаль, в E51 камера слабая &#8211; текст не фотографирует :( Вобщем, просто будьте осторожны в наших супермаркетах.</p>
<p>2. Участвую в конкурсе от <a href="http://goldroyal.net/showthread.php?t=3857">GoldRoyal.net</a> на лучший <a href="http://kichrum.org.ua/tag/blog" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  блог">блог</a>. Вообще я не хотел&#8230; Скажут: &#8220;Фальсификация! Карусели! Все на майдан!!!&#8221; Так что, думаю, ни я, ни Snack, не победим. Но, блин, он же участвует, значит и я буду, так, для массовки! :) К тому ж оценил ситуацию &#8211; если так и будет 6-7 участников, то шансы занять хотя б третье место вполне велики :)</p>
<p>Не бойтесь, сам за себя я голосовать не буду (хотя фаворита из соперников тоже пока не выбрал).</p>
<p>Да, и чуть не забыл&#8230;</p>
<p align="center">С наступающим на Вас Рождеством Христовым! :)</p>
                                                        <p><center>&copy; <a href="http://Kichrum.org.ua/about">Сергей Пашко</a> специально для <a href="http://kichrum.org.ua">Kichrum's Blog</a>. <a href="http://kichrum.org.ua/o-bloge/advertisement">Реклама в блоге</a>.</center></p>                                          ]]></content:encoded>
			<wfw:commentRss>http://kichrum.org.ua/po-vashim-zayavkam-05-01-2009.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

