<?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>Дмитрий Агафонов</title>
	<atom:link href="http://agafonov.pp.ru/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://agafonov.pp.ru/blog</link>
	<description>Человек, который живёт в сети</description>
	<lastBuildDate>Sat, 05 May 2012 13:09:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Установка и настройка языка в Ubuntu</title>
		<link>http://agafonov.pp.ru/blog/2012/05/05/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b0-%d0%b2-ubuntu/</link>
		<comments>http://agafonov.pp.ru/blog/2012/05/05/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b0-%d0%b2-ubuntu/#comments</comments>
		<pubDate>Sat, 05 May 2012 13:09:28 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Делаю]]></category>
		<category><![CDATA[видео]]></category>
		<category><![CDATA[скринкаст]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=543</guid>
		<description><![CDATA[Показано, как установить пакеты локализации на примере русского языка, настроить языковые предпочтения, добавить раскладки клавиатуры и установить их параметры.]]></description>
			<content:encoded><![CDATA[<p>Показано, как установить пакеты локализации на примере русского языка, настроить языковые предпочтения, добавить раскладки клавиатуры и установить их параметры.</p>
<p><iframe src="http://www.youtube.com/embed/tNznCCFFrHw" frameborder="0" width="640" height="360"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/05/05/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d1%8f%d0%b7%d1%8b%d0%ba%d0%b0-%d0%b2-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Саратов такой Саратов!</title>
		<link>http://agafonov.pp.ru/blog/2012/05/04/%d1%81%d0%b0%d1%80%d0%b0%d1%82%d0%be%d0%b2-%d1%82%d0%b0%d0%ba%d0%be%d0%b9-%d1%81%d0%b0%d1%80%d0%b0%d1%82%d0%be%d0%b2/</link>
		<comments>http://agafonov.pp.ru/blog/2012/05/04/%d1%81%d0%b0%d1%80%d0%b0%d1%82%d0%be%d0%b2-%d1%82%d0%b0%d0%ba%d0%be%d0%b9-%d1%81%d0%b0%d1%80%d0%b0%d1%82%d0%be%d0%b2/#comments</comments>
		<pubDate>Fri, 04 May 2012 12:22:19 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Живу]]></category>
		<category><![CDATA[видео]]></category>
		<category><![CDATA[жесть]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=535</guid>
		<description><![CDATA[Видеозарисовки из провинциальной жизни. Мой канал на YouTube]]></description>
			<content:encoded><![CDATA[<p>Видеозарисовки из провинциальной жизни.</p>
<p><span id="more-535"></span></p>
<p><iframe src="http://www.youtube.com/embed/FTp3gSx9P5o" frameborder="0" width="640" height="480"></iframe></p>
<p><iframe src="http://www.youtube.com/embed/HIyN40PZ7EI" frameborder="0" width="640" height="480"></iframe></p>
<p><a href="http://www.youtube.com/user/AgafonovDmitry">Мой канал на YouTube</a></p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/05/04/%d1%81%d0%b0%d1%80%d0%b0%d1%82%d0%be%d0%b2-%d1%82%d0%b0%d0%ba%d0%be%d0%b9-%d1%81%d0%b0%d1%80%d0%b0%d1%82%d0%be%d0%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2 сервера на Python</title>
		<link>http://agafonov.pp.ru/blog/2012/05/04/2-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-%d0%bd%d0%b0-python/</link>
		<comments>http://agafonov.pp.ru/blog/2012/05/04/2-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-%d0%bd%d0%b0-python/#comments</comments>
		<pubDate>Fri, 04 May 2012 12:14:17 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Изобретаю]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[тестирование]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=531</guid>
		<description><![CDATA[Интересные открытия ждут новичков при исследовании функциональности Python интерпретатора и состава библиотек. SMTP сервер для разработчика Команда: python -m smtpd -c DebuggingServer -n Что делает: Выводит всё, что приходит по стандартному smtp протоколу на стандартный вывод. Можете перенаправить в файл, можете смотреть так, в терминале. По умолчанию ожидает соединения на порт 8025 (стандартный 25 порт использовать [...]]]></description>
			<content:encoded><![CDATA[<p>Интересные открытия ждут новичков при исследовании функциональности <a href="http://python.org/">Python</a> интерпретатора и состава <a href="http://docs.python.org/library/">библиотек</a>.</p>
<h3>SMTP сервер для разработчика</h3>
<p><em>Команда:</em></p>
<pre>python -m smtpd -c DebuggingServer -n</pre>
<p><em>Что делает:</em></p>
<p>Выводит всё, что приходит по стандартному <a href="http://ru.wikipedia.org/wiki/SMTP">smtp протоколу</a> на стандартный вывод. Можете перенаправить в файл, можете смотреть так, в терминале. По умолчанию ожидает соединения на порт 8025 (стандартный 25 порт использовать без повышения привилегий нельзя). Для дополнительных опций и возможностей смотрите <a href="http://docs.python.org/library/smtpd.html">документацию</a>.</p>
<h3>Веб сервер для статики или передачи файлов</h3>
<p>Бывает так, что надо посмотреть что-то по <a href="http://ru.wikipedia.org/wiki/HTTP">http протоколу</a>, т.к. политики браузера не разрешают это через file://. А бывает, что надо что-то большое передать по сети коллеге, что выкладывать на друпбоксы долго, а расшаривать папки муторно (или запрещено файерволами).</p>
<p><em>Команда:</em></p>
<pre>python -m SimpleHTTPServer</pre>
<p><em>Что делает:</em></p>
<p>Даёт доступ по http ко всем файлам в текущем каталоге. index.html работает, список файлов при его отсутствии выдаёт. По умолчанию использует 8000 порт (стандартный 80 порт использовать без повышения привилегий нельзя). На стандартный вывод пишутся логи запросов, что также удобно. Для дополнительных опций и возможностей смотрите <a href="http://docs.python.org/library/simplehttpserver.html">документацию</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/05/04/2-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b0-%d0%bd%d0%b0-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Шрифты QT приложений в Ubuntu 12.04 LTS</title>
		<link>http://agafonov.pp.ru/blog/2012/04/18/%d1%88%d1%80%d0%b8%d1%84%d1%82%d1%8b-qt-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2-ubuntu-12-04-lts/</link>
		<comments>http://agafonov.pp.ru/blog/2012/04/18/%d1%88%d1%80%d0%b8%d1%84%d1%82%d1%8b-qt-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2-ubuntu-12-04-lts/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 09:10:01 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[bug]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=519</guid>
		<description><![CDATA[Пришла пора для новой системы и новых проблем для решения. Одной из таких стал мерзкий вид Skype в Ubuntu. Для решения поставим программу sudo apt-get install qt4-qtconfig и запустим qtconfig Нужно выбрать заново требуемый шрифт и его размер. При закрытии, по запросу, изменения сохранить. И в результате получим нечто более лучшее на вид. PS: У [...]]]></description>
			<content:encoded><![CDATA[<p>Пришла пора для новой системы и новых проблем для решения. Одной из таких стал мерзкий вид Skype в Ubuntu.</p>
<p style="text-align: center;"><a href="http://agafonov.pp.ru/blog/wp-content/uploads/2012/04/Снимок-экрана-от-2012-04-18-124422.png" rel="shadowbox[sbpost-519];player=img;" title="Мерзкий вид Skype"><img class="aligncenter  wp-image-520" title="Мерзкий вид Skype" src="http://agafonov.pp.ru/blog/wp-content/uploads/2012/04/Снимок-экрана-от-2012-04-18-124422.png" alt="" width="628" height="391" /></a></p>
<p>Для решения поставим программу</p>
<pre>sudo apt-get install qt4-qtconfig</pre>
<p>и запустим</p>
<pre>qtconfig</pre>
<p>Нужно выбрать заново требуемый шрифт и его размер. При закрытии, по запросу, изменения сохранить.</p>
<p style="text-align: center;"><a href="http://agafonov.pp.ru/blog/wp-content/uploads/2012/04/Снимок-экрана-от-2012-04-18-125110.png" rel="shadowbox[sbpost-519];player=img;" title="Qt4-config"><img class="aligncenter  wp-image-521" title="Qt4-config" src="http://agafonov.pp.ru/blog/wp-content/uploads/2012/04/Снимок-экрана-от-2012-04-18-125110.png" alt="" width="643" height="522" /></a></p>
<p>И в результате получим нечто более лучшее на вид.</p>
<p style="text-align: center;"><a href="http://agafonov.pp.ru/blog/wp-content/uploads/2012/04/Снимок-экрана-от-2012-04-18-125138.png" rel="shadowbox[sbpost-519];player=img;" title="Результат"><img class="aligncenter  wp-image-522" title="Результат" src="http://agafonov.pp.ru/blog/wp-content/uploads/2012/04/Снимок-экрана-от-2012-04-18-125138.png" alt="" width="583" height="293" /></a></p>
<p>PS: У меня есть подозрение, что проблема есть только у 64 битной версии Ubuntu, т.к. Skype 32 битный.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/04/18/%d1%88%d1%80%d0%b8%d1%84%d1%82%d1%8b-qt-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b2-ubuntu-12-04-lts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Забыть md5</title>
		<link>http://agafonov.pp.ru/blog/2012/03/29/%d0%b7%d0%b0%d0%b1%d1%8b%d1%82%d1%8c-md5/</link>
		<comments>http://agafonov.pp.ru/blog/2012/03/29/%d0%b7%d0%b0%d0%b1%d1%8b%d1%82%d1%8c-md5/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 09:00:25 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Изобретаю]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=507</guid>
		<description><![CDATA[Интересно, но я до сих пор считал, что md5 хеш в текстовом представлении (32 символа) для идентификации объектов &#8212; весьма не плохо. И коллизии маловероятны. Тем не менее, если не нужно привязываться к контенту объектов (как в git, к примеру, который, к слову, использует более длинный sha1), то можно поискать что-то более интересное и короткое. Например, [...]]]></description>
			<content:encoded><![CDATA[<p>Интересно, но я до сих пор считал, что md5 хеш в текстовом представлении (32 символа) для идентификации объектов &#8212; весьма не плохо. И коллизии маловероятны. Тем не менее, если не нужно привязываться к контенту объектов (как в git, к примеру, который, к слову, <a href="http://book.git-scm.com/1_the_git_object_model.html">использует более длинный sha1</a>), то можно поискать что-то более интересное и короткое.</p>
<p>Например, почитав статью <a href="http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D0%B5">Размещение</a>, можно заключить, что у md5 при длине 32 символа возможно 16^32 вариантов. Это отлично! Однако не всегда нужно, поэтому могу предложить более простую реализацию: используя все символы английского алфавита и цифры можно получить достаточное количество вариантов ключей, надо лишь подобрать нужную длину для вашей задачи. При 5 (пяти, всего пяти!) знаках — это уже почти миллиард вариантов.</p>
<p>Это не моя идея, сервисы сокращения интернет ссылок используют этот механизм уже давно, но задуматься об эффективности перехода с md5 меня заставили собственные текущие задачи.</p>
<p>Регистрационный код по электронной почте, верификационный код какой-либо купонной системы, ссылка на информационный <a href="http://ru.wikipedia.org/wiki/UGC">UGC</a> элемент&#8230; Тут есть выигрыш при использовании более короткого кода. Хотя бы от того, что сам код становится менее страшным для человека (психологический момент использования сервиса) или ссылки в коде страницы станут короче (в случае UGC) &#8212; страница меньше и быстрее.</p>
<p>Это всё копейки. Но по копейкам набегают миллионы <img src='http://agafonov.pp.ru/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre class="brush:php">
/*
 * Пример генерации кода на PHP
 */
function makeCode() {
  $a = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; // 62 символа
  $l = strlen($a) - 1;
  $c = $a[rand(0, $l)] . $a[rand(0, $l)] . $a[rand(0, $l)] . $a[rand(0, $l)] . $a[rand(0, $l)] .
  $a[rand(0, $l)] . $a[rand(0, $l)] . $a[rand(0, $l)] . $a[rand(0, $l)] . $a[rand(0, $l)]; // 10 знаков
  return $c; // число возможных размещений: 62^10 = 8,392993659*10^17
}</pre>
<p>PS: На коллизии не забывайте проверять!</p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/03/29/%d0%b7%d0%b0%d0%b1%d1%8b%d1%82%d1%8c-md5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Грабельки deployment при наличии opcode кэша</title>
		<link>http://agafonov.pp.ru/blog/2012/02/10/%d0%b3%d1%80%d0%b0%d0%b1%d0%b5%d0%bb%d1%8c%d0%ba%d0%b8-deployment-%d0%bf%d1%80%d0%b8-%d0%bd%d0%b0%d0%bb%d0%b8%d1%87%d0%b8%d0%b8-opcode-%d0%ba%d1%8d%d1%88%d0%b0/</link>
		<comments>http://agafonov.pp.ru/blog/2012/02/10/%d0%b3%d1%80%d0%b0%d0%b1%d0%b5%d0%bb%d1%8c%d0%ba%d0%b8-deployment-%d0%bf%d1%80%d0%b8-%d0%bd%d0%b0%d0%bb%d0%b8%d1%87%d0%b8%d0%b8-opcode-%d0%ba%d1%8d%d1%88%d0%b0/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 08:38:48 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Делаю]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[администрирование]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=492</guid>
		<description><![CDATA[Привет, PHP разработчик, администратор или релиз-менеджер! Наткнулся на интересное, спешу поделиться. Дано: Проект на PHP, одновременно работающий в режиме разработки («DEV», из SVN), а также боевом режиме («LIVE»), в который переводится ветка DEV после отлова багов. Сервер примечателен только тем, что PHP запускается через php-fpm и там включено opcode кэширование. У меня нижеследующее проявилось и при [...]]]></description>
			<content:encoded><![CDATA[<p>Привет, <a href="http://www.php.net/">PHP</a> разработчик, администратор или релиз-менеджер! Наткнулся на интересное, спешу поделиться.</p>
<p><strong>Дано:</strong></p>
<p>Проект на PHP, одновременно работающий в режиме разработки («DEV», из <a href="http://subversion.apache.org/">SVN</a>), а также боевом режиме («LIVE»), в который переводится ветка DEV после отлова багов. Сервер примечателен только тем, что PHP запускается через <a href="http://php-fpm.org/">php-fpm</a> и там включено <a href="http://ru.wikipedia.org/wiki/%D0%90%D0%BA%D1%81%D0%B5%D0%BB%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_PHP">opcode кэширование</a>. У меня нижеследующее проявилось и при <a href="http://xcache.lighttpd.net/">XCache</a> и при <a href="http://www.php.net/manual/en/book.apc.php">APC</a>.</p>
<p><strong>Надо:</strong></p>
<p>Перевести отлаженный проект из режима разработки в режим работы.</p>
<p><strong>Решаем:</strong></p>
<p>Итак, имеем примерно такую структуру проекта (ненужное вырезано):</p>
<pre>.../dev/
       /app/
           /index.php : &lt;?php require dirname(__FILE__).'/../conf.php'; print $me;
       conf.php       : &lt;?php $me = 'dev';
.../live/
       /app/
           /index.php : &lt;?php require dirname(__FILE__).'/../conf.php'; print $me;
       conf.php       : &lt;?php $me = 'live';</pre>
<p>Два виртуальных хоста в web сервере берут данные из <em>&#8230;/dev/</em> и <em>&#8230;/live/</em>, где лежит соответствующий код. Всё работает, opcode кэш ускорят работу, все счастливы. Запрос на <em>&#8230;/dev/app/index.php</em> возвращает «dev», на <em>&#8230;/live/app/index.php</em> — «live».</p>
<p>Но вот пришла пора выложить код из DEV в LIVE как можно более быстро и без глюков. Понятно, что вариантов море, один из пришедших в голову был таков: для deployment использовать 2 команды <a href="http://www.opennet.ru/man.shtml?topic=mv&amp;category=1&amp;russian=0">переименования каталогов</a>. Это на самом деле весьма &#171;дешево&#187;: операционная система сделает очень мало работы в очень короткое время, сбои крайне маловероятны:</p>
<pre>mv .../live/app .../bak &amp;&amp; mv .../dev/app .../live</pre>
<p>И вот в очень короткое время мы переместили код. Всё хорошо? Нет! Запрос на <em>&#8230;/live/app/index.php</em> возвращает «dev», сайт работает с тестовыми данными разработчика! <img src='http://agafonov.pp.ru/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p><strong>Расследование:</strong></p>
<p>Собственно, поиск причины был не сильно долгим. Мы переместили ветку файловой системы, идентификаторы файлов («<a href="http://ru.wikipedia.org/wiki/Inode">inode</a>») внутри ветки не поменялись и op-кэш наивно думает, что ничего не поменялось, т.к. он идентифицирует код по идентификатору файла. Ну и в итоге в окружении LIVE лежит файл, который запускается интерпретатором PHP со включенным файлом конфигурации на момент попадания в кэш — это был файл из DEV ветки. Вот так.</p>
<p><strong>Итого мораль — при переносе дерева файлов PHP в рамках обработчика PHP с включенным opcode кэшированием вы продолжаете использовать старый закэшированный код, даже если включенные из перенесенных файлы поменялись.</strong></p>
<p><strong>Что делать?</strong></p>
<p>Один из вариантов, и как мне кажется правильный — это запустить два экземпляра php-fpm обработчика. Отдельно для DEV и LIVE окружений. Или полностью <a href="http://www.php.net/manual/en/apc.configuration.php#ini.apc.filters">исключить некоторые файлы из кэширования</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/02/10/%d0%b3%d1%80%d0%b0%d0%b1%d0%b5%d0%bb%d1%8c%d0%ba%d0%b8-deployment-%d0%bf%d1%80%d0%b8-%d0%bd%d0%b0%d0%bb%d0%b8%d1%87%d0%b8%d0%b8-opcode-%d0%ba%d1%8d%d1%88%d0%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Русский в консоли Ubuntu Server</title>
		<link>http://agafonov.pp.ru/blog/2012/02/08/%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%b8%d0%b9-%d0%b2-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b8-ubuntu-server/</link>
		<comments>http://agafonov.pp.ru/blog/2012/02/08/%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%b8%d0%b9-%d0%b2-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b8-ubuntu-server/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 04:42:58 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[администрирование]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=480</guid>
		<description><![CDATA[В Ubuntu в очередной раз поломали отображение национальных шрифтов в консоли (именно в консоли, а не в эмуляторе терминала). Я, помнится, около 2008 года уже помог починить, но «технологии шагнули далеко вперед» Что случилось и как починить — читайте в статье: http://help.ubuntu.ru/wiki/russian_font_in_console. Приводить полностью не буду, если кратко, то надо добавить FRAMEBUFFER=Y в /etc/initramfs-tools/initramfs.conf и после перенастройки консоль будет [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-483" title="Рандомная картинка про глюки в консоли" src="http://agafonov.pp.ru/blog/wp-content/uploads/2012/02/hpim1001bh8-300x225.jpg" alt="" width="300" height="225" />В Ubuntu в очередной раз поломали отображение национальных шрифтов в консоли (именно в <a href="http://help.ubuntu.ru/wiki/%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C">консоли</a>, а не в <a href="http://help.ubuntu.ru/wiki/%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB">эмуляторе терминала</a>). Я, помнится, около 2008 года уже помог починить, но «технологии шагнули далеко вперед» <img src='http://agafonov.pp.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Что случилось и как починить — читайте в статье: <a href="http://help.ubuntu.ru/wiki/russian_font_in_console">http://help.ubuntu.ru/wiki/russian_font_in_console</a>.</p>
<p>Приводить полностью не буду, если кратко, то надо добавить <strong>FRAMEBUFFER=Y</strong> в <em>/etc/initramfs-tools/initramfs.conf</em> и после перенастройки консоль будет оставаться правильно настроенной при перезагрузке.</p>
<p>&nbsp;</p>
<p>Это реклама <a href="http://help.ubuntu.ru/wiki/">Русскоязычной пользовательской документации Ubuntu</a>, в составлении которой <a href="http://help.ubuntu.ru/terms/">можно и нужно поучаствовать</a>, если вы владеете информацией и хотите поделиться с людьми.</p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/02/08/%d1%80%d1%83%d1%81%d1%81%d0%ba%d0%b8%d0%b9-%d0%b2-%d0%ba%d0%be%d0%bd%d1%81%d0%be%d0%bb%d0%b8-ubuntu-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Репликация MySQL на одном сервере</title>
		<link>http://agafonov.pp.ru/blog/2012/02/07/%d1%80%d0%b5%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-mysql-%d0%bd%d0%b0-%d0%be%d0%b4%d0%bd%d0%be%d0%bc-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5/</link>
		<comments>http://agafonov.pp.ru/blog/2012/02/07/%d1%80%d0%b5%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-mysql-%d0%bd%d0%b0-%d0%be%d0%b4%d0%bd%d0%be%d0%bc-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 13:58:30 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Делаю]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[администрирование]]></category>
		<category><![CDATA[базы данных]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=472</guid>
		<description><![CDATA[Привет, администраторы! Попалась любопытная задача, сделать репликацию одной базы в другую на том же самом сервере. Решение нашлось.  Забавное. Привожу дополнено и по-русски: Дано: MySQL сервер (у меня он на Ubuntu, но тут, пожалуй не важно) — одна штука, база данных base1. Надо: Сделать репликацию базы на том же самом сервере, не запуская дополнительных процессов, в [...]]]></description>
			<content:encoded><![CDATA[<p>Привет, администраторы!</p>
<p>Попалась любопытная задача, сделать репликацию одной базы в другую на том же самом сервере. Решение <a title="Индусы - молодцы!" href="http://www.ruturaj.net/tutorials/mysql/replication/same-server-rewrite-database">нашлось</a>.  Забавное. Привожу дополнено и по-русски:</p>
<p><strong>Дано:</strong></p>
<p>MySQL сервер (у меня он на Ubuntu, но тут, пожалуй не важно) — одна штука, база данных <strong><em>base1</em></strong>.</p>
<p><strong>Надо:</strong></p>
<p>Сделать репликацию базы на том же самом сервере, не запуская дополнительных процессов, в базу <strong><em>base2</em></strong>.</p>
<p><strong>Решение:</strong></p>
<p>Копируем <em><strong>base1</strong></em> в <em><strong>base2</strong></em>, каким угодно способом, это ваше начальное состояние, после этого <em><strong>base1</strong></em> не должна меняться.</p>
<p>Настраиваем [mysql] секцию в <em>/etc/mysql/my.cnf</em>, добавив:</p>
<pre>...
server-id=1
report-host=master-is-slave-host
log-bin=myserver-binlog
relay-log=myserver-relaylog
replicate-same-server-id=1
binlog-do-db=base1
replicate-rewrite-db=base1-&gt;base2
replicate-do-db=base2
...</pre>
<p>После этого следует перезапустить сервер и можно увидеть, что <em>binlog</em> начал писаться:</p>
<pre># service mysql restart
...
# ls /var/lib/mysql/myserver*
myserver-binlog.000001</pre>
<p>Выдыхаем, запускаем работу вашего приложения с <em><strong>base1</strong></em>, теперь можно.</p>
<p>Осталось запустить репликацию, выполняем админом в базе:</p>
<pre>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'localhost' IDENTIFIED BY 'CoolPassW0rd';
FLUSH PRIVILEGES;
CHANGE MASTER TO MASTER_HOST='localhost', MASTER_USER='repl',
    MASTER_PASSWORD='CoolPassW0rd', MASTER_LOG_FILE='myserver-binlog.000001';
START SLAVE;</pre>
<p>И для контроля, что всё ок, посмотрите, что выдают:</p>
<pre>SHOW MASTER STATUS;
SHOW SLAVE STATUS;</pre>
<p>Типа всё. Согласен получить комментарии по теме!</p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/02/07/%d1%80%d0%b5%d0%bf%d0%bb%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-mysql-%d0%bd%d0%b0-%d0%be%d0%b4%d0%bd%d0%be%d0%bc-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Python beginners class from Google</title>
		<link>http://agafonov.pp.ru/blog/2012/02/04/python-beginners-class-from-google/</link>
		<comments>http://agafonov.pp.ru/blog/2012/02/04/python-beginners-class-from-google/#comments</comments>
		<pubDate>Sat, 04 Feb 2012 09:18:10 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=465</guid>
		<description><![CDATA[Just watched Google python class done by Nick Parlante. It is rather introductory but very useful and cool. Here is the class homepage. Lecture videos: 1.1 Introduction, strings 1.2 Lists and sorting 1.3 Dicts and files 2.1 Regular expr 2.2 Utilities 2.3 Utilities urllib 2.4 Conclusions]]></description>
			<content:encoded><![CDATA[<p>Just watched Google python class done by <a href="http://www-cs-faculty.stanford.edu/~nick/">Nick Parlante</a>. It is rather introductory but very useful and cool.<a href="http://agafonov.pp.ru/blog/wp-content/uploads/2012/02/nick.jpg" rel="shadowbox[sbpost-465];player=img;" title="nick"><img class="alignright size-medium wp-image-467" title="nick" src="http://agafonov.pp.ru/blog/wp-content/uploads/2012/02/nick-300x219.jpg" alt="" width="300" height="219" /></a></p>
<p><a href="http://code.google.com/intl/ru/edu/languages/google-python-class/index.html">Here is the class homepage.</a></p>
<p>Lecture videos:</p>
<p><a href="http://www.youtube.com/watch?v=tKTZoB2Vjuk" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">1.1 Introduction, strings</a><br />
<a href="http://www.youtube.com/watch?v=EPYupizJYQI" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">1.2 Lists and sorting</a><br />
<a href="http://www.youtube.com/watch?v=haycL41dAhg" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">1.3 Dicts and files</a><br />
<a href="http://www.youtube.com/watch?v=kWyoYtvJpe4" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">2.1 Regular expr</a><br />
<a href="http://www.youtube.com/watch?v=uKZ8GBKmeDM" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">2.2 Utilities</a><br />
<a href="http://www.youtube.com/watch?v=Nn2KQmVF5Og" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">2.3 Utilities urllib</a><br />
<a href="http://www.youtube.com/watch?v=IcteAbMC1Ok" rel="shadowbox[sbpost-465];player=swf;width=640;height=385;">2.4 Conclusions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2012/02/04/python-beginners-class-from-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Коды ОК 004-93</title>
		<link>http://agafonov.pp.ru/blog/2011/03/24/%d0%ba%d0%be%d0%b4%d1%8b-%d0%be%d0%ba-004-93/</link>
		<comments>http://agafonov.pp.ru/blog/2011/03/24/%d0%ba%d0%be%d0%b4%d1%8b-%d0%be%d0%ba-004-93/#comments</comments>
		<pubDate>Thu, 24 Mar 2011 12:17:11 +0000</pubDate>
		<dc:creator>Agafonov</dc:creator>
				<category><![CDATA[Изобретаю]]></category>
		<category><![CDATA[жесть]]></category>
		<category><![CDATA[Россия]]></category>

		<guid isPermaLink="false">http://agafonov.pp.ru/blog/?p=452</guid>
		<description><![CDATA[Замучался искать в сети коды по общероссийскому классификатору видов экономической деятельности, продукции и услуг (ОКДП) ОК 004-93. Работать с текстами законов невозможно, есть ли бесплатные (хотя бы, не говоря уж об открытых) программы для Linux — не ведаю, сразу не нашел. Озадачился и за час причесал базу кодов из открытых источников в формат &#60;код&#62; &#60;табуляция&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://agafonov.pp.ru/blog/wp-content/uploads/2011/03/numbers.jpg" rel="shadowbox[sbpost-452];player=img;" title="numbers"><img class="alignright size-thumbnail wp-image-454" title="numbers" src="http://agafonov.pp.ru/blog/wp-content/uploads/2011/03/numbers-150x150.jpg" alt="" width="150" height="150" /></a>Замучался искать в сети коды по общероссийскому классификатору видов экономической деятельности, продукции и услуг (ОКДП) ОК 004-93. Работать с текстами законов невозможно, есть ли бесплатные (хотя бы, не говоря уж об открытых) программы для Linux — не ведаю, сразу не нашел.</p>
<p>Озадачился и за час причесал базу кодов из открытых источников в формат &lt;код&gt; &lt;табуляция&gt; &lt;описание&gt;. Можно открыть в текстовом редакторе, табличном процессоре, загрузить в базу данных или сделать удобную программу для поиска — на ваше усмотрение.</p>
<p><a href="http://agafonov.pp.ru/files/OK-004-93.zip">Скачать базу кодов по общероссийскому классификатору видов экономической деятельности, продукции и услуг (ОКДП) ОК 004-93</a> (558 Кб).</p>
<p><strong>Внимание: Я уверен, что там не все коды!</strong></p>
<p><em>Обновление 2011-03-24 17:45:</em> ﻿заполнен раздел 7200000 (УСЛУГИ, СВЯЗАННЫЕ С ДЕЯТЕЛЬНОСТЬЮ ПО ИСПОЛЬЗОВАНИЮ КОМПЬЮТЕРОВ).</p>
<p>Написал bash скриптик для поиска по кодам с выводом иерархии. А то иногда вроде смотришь, код правильный, а оно совсем из другой оперы.</p>
<pre class="brush:bash">#!/bin/bash

CODE=$1
DB="OK-004-93.csv"

function use {
	echo "$0 CODE"
	exit
}

[ -z "$CODE" ] &amp;&amp; use

echo `grep "^${CODE:0:2}00000" $DB`
echo " "`grep "^${CODE:0:4}000" $DB`
echo "  "`grep "^${CODE:0:6}0" $DB`
echo "   "`grep "^${CODE}" $DB`</pre>
<p>Тупо, но эффективно <img src='http://agafonov.pp.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Вот пример использования:</p>
<pre>$ ./OK-004-93-SEARCH.sh 1512242
1500000 ПИЩЕВЫЕ ПРОДУКТЫ И НАПИТКИ
 1512000 РЫБА И РЫБНЫЕ ПРОДУКТЫ ПЕРЕРАБОТАННЫЕ И КОНСЕРВИРОВАННЫЕ
  1512240 Рыба крепкосоленая (без сельди)
   1512242 Рыба крепкосоленая потрошеная с головой

$ ./OK-004-93-SEARCH.sh 7260011
7200000 УСЛУГИ, СВЯЗАННЫЕ С ДЕЯТЕЛЬНОСТЬЮ ПО ИСПОЛЬЗОВАНИЮ КОМПЬЮТЕРОВ
 7260000 СИСТЕМНЫЕ И ПРИКЛАДНЫЕ ПРОГРАММНЫЕ СРЕДСТВА
  7260010 Системные программные средства
   7260011 Операционные системы и средства их расширения</pre>
]]></content:encoded>
			<wfw:commentRss>http://agafonov.pp.ru/blog/2011/03/24/%d0%ba%d0%be%d0%b4%d1%8b-%d0%be%d0%ba-004-93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching using memcached
Object Caching 476/647 objects using memcached

Served from: agafonov.pp.ru @ 2012-05-20 10:25:22 -->
