<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Pais porrada de Bethrezen</title> <link>http://blog.bethrezen.ru</link> <description>Блог веб-программиста</description> <lastBuildDate>Sat, 27 Aug 2011 08:51:33 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.2.1</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PaisPorradaDeBethrezen" /><feedburner:info uri="paisporradadebethrezen" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Бесконечная очередь и отказ от сообщений в RabbitMQ + Thumper + PHP AMPQlib</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/PFhXY4yPuWA/beskonechnaya-ochered-i-otkaz-ot-soobshhenijj-v-rabbitmq-thumper-php-ampqlib.html</link> <comments>http://blog.bethrezen.ru/2011/08/beskonechnaya-ochered-i-otkaz-ot-soobshhenijj-v-rabbitmq-thumper-php-ampqlib.html#comments</comments> <pubDate>Sat, 27 Aug 2011 08:50:45 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[php]]></category> <category><![CDATA[phpampqlib]]></category> <category><![CDATA[rabbitmq]]></category> <category><![CDATA[thumper]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=299</guid> <description><![CDATA[По работе столкнулся с одной задачей и решил использовать сервер очереди сообщений RabbitMQ в связке с PHP 5.3 через PHP-ampqlib и библиотеку Thumper. Чтобы сделать Consumer(worker), который будет обрабатывать бесконечную очередь надо задать $consumer-&#62;consume(-1);. Тогда в цикле Thumper, где проверяется нужно ли нам выходить всё будет хорошо и наш обработчик будет работать вечно. Но появился ещё [...]]]></description> <content:encoded><![CDATA[<p>По работе столкнулся с одной задачей и решил использовать сервер очереди сообщений <a
href="http://www.rabbitmq.com/" rel="nofollow" target="_blank">RabbitMQ</a> в связке с PHP 5.3 через <a
href="https://github.com/tnc/php-amqplib" rel="nofollow" target="_blank">PHP-ampqlib</a> и библиотеку <a
href="https://github.com/videlalvaro/Thumper" rel="nofollow" target="_blank">Thumper</a>.</p><p>Чтобы сделать Consumer(worker), который будет обрабатывать бесконечную очередь надо задать $consumer-&gt;consume(-1);. Тогда в цикле Thumper, где проверяется нужно ли нам выходить всё будет хорошо и наш обработчик будет работать вечно.</p><p>Но появился ещё один интересный вопрос &#8211; что делать, если внутри функции обработки сообщения произошел Exception? Я решил, что тогда мы отказываемся от этого сообщение и оно идет к другому обработчику. Реализовывать это лучше расширением класса Consumer:</p><pre ">class MyConsumer extends Consumer {
	public function processMessage($msg) {
		try {
			parent::processMessage($msg);
		} catch (Exception $e) {
			echo "Message rejected due to exception.\n".$e-&gt;getMessage()."\n";
			$msg-&gt;delivery_info['channel']-&gt;basic_reject($msg-&gt;delivery_info['delivery_tag'],true);
			//throw $e;
		}
	}
}</pre><p>Соответственно ваш Consumer должен быть объектом класса MyConsumer.<br
/> Если же всё таки нужно кинуть этот Exception выше &#8211; убираем комментарий со строки throw $e;</p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/PFhXY4yPuWA" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2011/08/beskonechnaya-ochered-i-otkaz-ot-soobshhenijj-v-rabbitmq-thumper-php-ampqlib.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2011/08/beskonechnaya-ochered-i-otkaz-ot-soobshhenijj-v-rabbitmq-thumper-php-ampqlib.html</feedburner:origLink></item> <item><title>Блог основателя SEO в Demis Group</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/Qtl0lj1oY_Y/blog-osnovatelya-seo-v-demis-group.html</link> <comments>http://blog.bethrezen.ru/2011/07/blog-osnovatelya-seo-v-demis-group.html#comments</comments> <pubDate>Fri, 29 Jul 2011 11:44:07 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[Новости]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=296</guid> <description><![CDATA[Директор тамбовского подразделения Demis Group, один из основателей SEO в нашей компании наконец то начал приобщаться к общению в сети. Раньше просто совсем времени не было. Вот встречайте: Блог Скобеева Константина Twitter: @skobeeff]]></description> <content:encoded><![CDATA[<p>Директор тамбовского подразделения Demis Group, один из основателей SEO в нашей компании наконец то начал приобщаться к общению в сети. Раньше просто совсем времени не было.</p><p>Вот встречайте:</p><p><a
title="Блог Скобеева Константина" href="http://blog.skobeeff.ru">Блог Скобеева Константина</a></p><p>Twitter: @skobeeff</p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/Qtl0lj1oY_Y" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2011/07/blog-osnovatelya-seo-v-demis-group.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2011/07/blog-osnovatelya-seo-v-demis-group.html</feedburner:origLink></item> <item><title>Скорость интернета</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/euinhXwc8-U/skorost-interneta.html</link> <comments>http://blog.bethrezen.ru/2011/02/skorost-interneta.html#comments</comments> <pubDate>Fri, 11 Feb 2011 11:24:27 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[SEO]]></category> <category><![CDATA[эксперимент]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=290</guid> <description><![CDATA[Сделал я тут недавно один сервис. Сервис называется Скорость Интернета!. Предназначен для определения и измерения реальной скорости интернета. В принципе &#8211; это эксперимент и сайт делался за 30 минут. Взял CMS ModX Revolution. Прикрутил шаблон. Потом нагуглил бесплатный скрипт, вставил его на морду &#8211; всё, работает. Для привлечения поискового трафика написал две статьи под определенные [...]]]></description> <content:encoded><![CDATA[<p>Сделал я тут недавно один сервис.<br
/> <span
id="more-290"></span><br
/> Сервис называется <a
href="http://www.skorostinterneta.ru/">Скорость Интернета!</a>. Предназначен для определения и измерения реальной скорости интернета. В принципе &#8211; это эксперимент и сайт делался за 30 минут.<br
/> Взял CMS ModX Revolution. Прикрутил шаблон. Потом нагуглил бесплатный скрипт, вставил его на морду &#8211; всё, работает.<br
/> Для привлечения поискового трафика написал две статьи под определенные запросы. Ссылок на данный момент 15. Но тем не менее, сайт по основному запросу на 7-9 месте.<br
/> Траффик идет неплохой &#8211; сначала было по 300 уникальных посететителей в день, а 1 февраля было аж &gt; 1000! Видимо этот неожиданный рост связан с тем, что люди переходили на новые тарифные планы и хотели потестировать свою скорость.</p><p>Два дня назад сервер с этим сайтом вывалился в даун. Я ждал, ну мало ли само починится. Так нет, даже сам сайт хостера лежал.<br
/> Сегодня нашел админа в фейсбуке, зарегистрировался на этом сайте и написал ему, мол в чем дело. Кстати админ &#8211; еврей и фамилия у него Yablon <img
src='http://blog.bethrezen.ru/wp-includes/images/smilies/icon_biggrin.gif' alt="icon biggrin Скорость интернета" class='wp-smiley' title="Скорость интернета" /><br
/> На что он мне ответил:</p><blockquote><p>oh k i was had problem toi pay them for the servers&#8230; my credit card limited to 2k ILS and the bill was much more this why it was down</p></blockquote><p>Забавно получается. Я значит оплатил всё вовремя, а он тянул до последнего! Нехорошо!<br
/> Ну да ладно. Сервер заработал и на том спасибо.<br
/> Сейчас я этим постом тоже ставлю эксперимент.<br
/> Дело в том, что я решил на основе стандартных алгоритмов, доступных в сети алгоритмах посчитать ссылочную массу, которую передаст ссылка с этого поста.<br
/> Посмотрим, что из этого выйдет <img
src='http://blog.bethrezen.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Скорость интернета" class='wp-smiley' title="Скорость интернета" /></p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/euinhXwc8-U" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2011/02/skorost-interneta.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2011/02/skorost-interneta.html</feedburner:origLink></item> <item><title>Запаковываем проект в один JAR для запуска на Hadoop</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/B1MwxACKlSo/packing-java-project-into-one-jar-for-hadoop.html</link> <comments>http://blog.bethrezen.ru/2010/06/packing-java-project-into-one-jar-for-hadoop.html#comments</comments> <pubDate>Sat, 05 Jun 2010 08:12:36 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[Code]]></category> <category><![CDATA[ant]]></category> <category><![CDATA[hadoop]]></category> <category><![CDATA[jar]]></category> <category><![CDATA[java]]></category> <category><![CDATA[tips]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=276</guid> <description><![CDATA[Сегодня потребовалось запаковать проект на Java в один JAR файл. Нужно мне это для того, чтобы не мучиться с подключением сторонних jar и их дистрибьюции на кластер Hadoop Map Reduce. Да и к тому же, параметр -libjars из документации у меня почему то не работал. Проект мой компилируется через ant. Поэтому самым простым  решением для [...]]]></description> <content:encoded><![CDATA[<p>Сегодня потребовалось запаковать проект на Java в <strong>один JAR файл</strong>. Нужно мне это для того, чтобы не мучиться с подключением сторонних jar и их дистрибьюции на кластер <strong>Hadoop Map Reduce</strong>. Да и к тому же, параметр -libjars из документации у меня почему то не работал.</p><p><span
id="more-276"></span></p><p>Проект мой компилируется через ant. Поэтому самым простым  решением для этой задачи является модификация build.xml.</p><p>Открываем build.xml и прямо перед закрывающим тегом <code>&lt;/project&gt;</code> пишем:</p><p><code
lang="xml"><br
/> &lt;target name="package-for-store" depends="jar"&gt;<br
/> &lt;property name="store.jar.name" value="<em>YourProjectNameHere</em>"/&gt;</code></p><p><code
lang="xml">&lt;!-- don't edit below this line --&gt;</code></p><p><code
lang="xml">&lt;property name="store.dir" value="store"/&gt;<br
/> &lt;property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/&gt;</code></p><p><code
lang="xml"> </code></p><p><code
lang="xml">&lt;echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/&gt;</code></p><p><code
lang="xml">&lt;delete dir="${store.dir}"/&gt;<br
/> &lt;mkdir dir="${store.dir}"/&gt;</p><p>&lt;jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip"&gt;<br
/> &lt;zipgroupfileset dir="dist" includes="*.jar"/&gt;<br
/> &lt;zipgroupfileset dir="dist/lib" includes="*.jar"/&gt;</p><p>&lt;manifest&gt;<br
/> &lt;attribute name="Main-Class" value="${main.class}"/&gt;<br
/> &lt;/manifest&gt;<br
/> &lt;/jar&gt;</p><p>&lt;zip destfile="${store.jar}"&gt;<br
/> &lt;zipfileset src="${store.dir}/temp_final.jar"<br
/> excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/&gt;<br
/> &lt;/zip&gt;</p><p>&lt;delete file="${store.dir}/temp_final.jar"/&gt;</p><p></code></p><p><code
lang="xml"> &lt;/target&gt;<br
/> </code></p><p>В итоге при компиляции <strong>ant package-for-store</strong> у нас появится пакет YourProjectName.jar в папке store со всеми сторонними библиотеками. Такой способ напомнил мне статичную линковку в C++..</p><p>Всё, теперь мой JAVA проект спокойно запускается в Hadoop кластере. А теперь можно заняться и с<a
href="http://devgroup.ru/services/sozdanie-saitov.html">озданием сайтов</a> <img
src='http://blog.bethrezen.ru/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Запаковываем проект в один JAR для запуска на Hadoop" class='wp-smiley' title="Запаковываем проект в один JAR для запуска на Hadoop" /></p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/B1MwxACKlSo" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2010/06/packing-java-project-into-one-jar-for-hadoop.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2010/06/packing-java-project-into-one-jar-for-hadoop.html</feedburner:origLink></item> <item><title>Как получить MAC из busyBox</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/JT1YjuSNGzk/kak-poluchit-mac-iz-busybox.html</link> <comments>http://blog.bethrezen.ru/2010/06/kak-poluchit-mac-iz-busybox.html#comments</comments> <pubDate>Fri, 04 Jun 2010 06:33:41 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[linux]]></category> <category><![CDATA[busybox]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=242</guid> <description><![CDATA[Сегодня потребовалось из busybox при установки Debian netsinst получить MAC-адрес сетевки. Это как оказалось можно сделать так: # ip l sh eth0 17: eth0: &#60;BROADCAST,MULTICAST,UP&#62; mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:c0:9f:55:6e:e5 brd ff:ff:ff:ff:ff:ff]]></description> <content:encoded><![CDATA[<p>Сегодня потребовалось из busybox при установки Debian netsinst получить MAC-адрес сетевки. Это как оказалось можно сделать так:</p><p><code># ip l sh eth0</code><br
/> <code>17: eth0: &lt;BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc pfifo_fast qlen 1000</code><br
/> <code>link/ether 00:c0:9f:55:6e:e5 brd ff:ff:ff:ff:ff:ff</code></p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/JT1YjuSNGzk" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2010/06/kak-poluchit-mac-iz-busybox.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2010/06/kak-poluchit-mac-iz-busybox.html</feedburner:origLink></item> <item><title>Лечим Network is unreachable в Java на Debian/Ubuntu</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/T6ZjgPxh0nU/network-unreachable-java-debian-ubuntu.html</link> <comments>http://blog.bethrezen.ru/2010/06/network-unreachable-java-debian-ubuntu.html#comments</comments> <pubDate>Fri, 04 Jun 2010 04:23:15 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[linux]]></category> <category><![CDATA[debian]]></category> <category><![CDATA[java]]></category> <category><![CDATA[sysctl]]></category> <category><![CDATA[ubuntu]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=269</guid> <description><![CDATA[Если у вас в Debian или Ubuntu не работают приложения, написанные на Java, ругаясь при этом как то так: 38 connect(22, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:72.5.124.95", &#38;sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28 6938 connect(22, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:72.5.124.95", &#38;sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable) Или вот так: Could not bind/listen. Network is unreachable. Лечится [...]]]></description> <content:encoded><![CDATA[<p>Если у вас в Debian или Ubuntu не работают приложения, написанные на <strong>Java</strong>, ругаясь при этом как то так:</p><p><code>38 connect(22, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:72.5.124.95", &amp;sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28<br
/> 6938 connect(22, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:72.5.124.95", &amp;sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = -1 ENETUNREACH (Network is unreachable)<br
/> Или вот так: Could not bind/listen. Network is unreachable.<br
/> </code></p><p>Лечится это просто.</p><p>Редактируем файл <strong>/etc/sysctl.d/bindipv6only.conf</strong> и ставим там 0 вместо 1. Перегружаемся и всё работает! Проверено, у меня так hadoop, hbase не хотели запускаться.</p><p>Если хотите без перезагрузки, то можете ещё выполнить:</p><p><code><br
/> echo 0 &gt; /proc/sys/net/ipv6/bindv6only<br
/> sysctl net.ipv6.bindv6only=0<br
/> </code></p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/T6ZjgPxh0nU" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2010/06/network-unreachable-java-debian-ubuntu.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2010/06/network-unreachable-java-debian-ubuntu.html</feedburner:origLink></item> <item><title>Список регионов яндекса</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/jv3c3xCmNv0/spisok-regionov-yandeksa.html</link> <comments>http://blog.bethrezen.ru/2010/03/spisok-regionov-yandeksa.html#comments</comments> <pubDate>Sun, 28 Mar 2010 20:14:17 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[Free]]></category> <category><![CDATA[SEO]]></category> <category><![CDATA[yandex]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=260</guid> <description><![CDATA[Не для кого уже не секрет, что Яндекс умеет определять регион сайта. Делает он это автоматически по своим хитрым алгоритмам. С недавнего времени, каждый владелей сайта может сам задать регион сайта в Яндексе. Делается это через панель веб-мастера. А для сайтов в ЯК региональную пренадлежность определяют моедараторы Yandex Каталога. По умолчанию пользователь видит регион, в [...]]]></description> <content:encoded><![CDATA[<p>Не для кого уже не секрет, что Яндекс умеет определять регион сайта. Делает он это автоматически по своим хитрым алгоритмам. С недавнего времени, каждый владелей сайта может сам <strong>задать регион сайта в Яндексе</strong>. Делается это через панель веб-мастера. А для сайтов в ЯК региональную пренадлежность определяют моедараторы Yandex Каталога.<span
id="more-260"></span></p><p>По умолчанию пользователь видит регион, в котором он находится, что определяется по IP провайдера. За выдачу по региону отвечает одноименная настройка. Изменив её можно сразу же заметить разницу в выдаче по геозависимым запросам(например пицца, университет, такси). В адресной строке браузера можно заметить параметр <strong>lr=13</strong>, где 13 &#8211; это код региона в поисковике. Он то как раз и определяет нашу выдачу.</p><p>Так вот, к чему я это всё. Сегодня мне потребовался список регионов. Нашёл у Жилинского, но структура того списка мне не понравилась. Нашёл ещё один список на форуме Searchengines.ru. Тот тоже как то не так. Ну и решил я напарсить коды регионов с Яндекса. В итоге получилась таблица типа adjancy list(сопоставление предков и потомков через id -&gt; parent).</p><p>Короче говоря, вот вам возможность скачать <a
title="коды регионов яндекса" href="http://qoh.in/yandex-regions-dump.sql">список регионов яндекса</a> в виде MySQL дампа. Как это применять &#8211; уже ваш вопрос. За актуальность и достоверность не ручаюсь, но на первый взгляд вроде всё нормально.</p><p>BONUS: А вот как выглядит редактирование регионов в моей незарелизенной ещё пока что CMS-ке:</p><div
id="attachment_261" class="wp-caption alignnone" style="width: 310px"><a
href="http://blog.bethrezen.ru/wp-content/uploads/2010/03/regions.png"><img
class="size-medium wp-image-261" title="Yandex Regions Codes Admin" src="http://blog.bethrezen.ru/wp-content/uploads/2010/03/regions-300x240.png" alt="regions 300x240 Список регионов яндекса" width="300" height="240" /></a><p
class="wp-caption-text">Скриншот админки регионов по яндексу</p></div> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/jv3c3xCmNv0" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2010/03/spisok-regionov-yandeksa.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2010/03/spisok-regionov-yandeksa.html</feedburner:origLink></item> <item><title>Ресайз PNG картинок c прозрачностью в Thunar</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/VeviGU06NCQ/resizing-png-images-in-thunar-with-transparency.html</link> <comments>http://blog.bethrezen.ru/2010/01/resizing-png-images-in-thunar-with-transparency.html#comments</comments> <pubDate>Sat, 09 Jan 2010 21:11:50 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[linux]]></category> <category><![CDATA[bash]]></category> <category><![CDATA[png]]></category> <category><![CDATA[resize]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=253</guid> <description><![CDATA[Сегодня мне пришлось решить рутиную задачу &#8211; изменить размер PNG картинок не теряя при этом прозрачность. Искать какой либо софт было лень, поэтому решил написать bash скрипт, который всё сделает за меня. Идея позаимствована с Crunchbang linux wiki. Создаём папку ~/bin и там файлик resize.sh следующего содержимого: #! /bin/sh for file; do if &#91; ! [...]]]></description> <content:encoded><![CDATA[<p>Сегодня мне пришлось решить рутиную задачу &#8211; <strong>изменить размер PNG картинок</strong> не теряя при этом прозрачность. Искать какой либо софт было лень, поэтому решил написать bash скрипт, который всё сделает за меня.</p><p><span
id="more-253"></span></p><p>Идея позаимствована с Crunchbang linux wiki.</p><p>Создаём папку <code>~/bin</code> и там файлик <strong>resize.sh</strong> следующего содержимого:</p><div
class="wp_syntax"><div
class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;"><span style="color: #666666; font-style: italic;">#! /bin/sh</span>
<span style="color: #000000; font-weight: bold;color:#DD2A24;font-weight:bold;">for</span> <span style="color: #c20cb9; font-weight: bold;color: #577A61;">file</span>; <span style="color: #000000; font-weight: bold;color:#DD2A24;font-weight:bold;">do</span>
 <span style="color: #000000; font-weight: bold;color:#DD2A24;font-weight:bold;">if</span> <span style="color: #7a0874; font-weight: bold;color: #CCC;">&#91;</span> <span style="color: #000000; font-weight: bold;color: #CCC;">!</span> <span style="color: #660033;">-e</span> <span style="color: #007800;color: blue;">$file</span> <span style="color: #7a0874; font-weight: bold;color: #CCC;">&#93;</span>; <span style="color: #000000; font-weight: bold;color:#DD2A24;font-weight:bold;">then</span>
 <span style="color: #7a0874; font-weight: bold;color: #8FB394;">continue</span>
 <span style="color: #000000; font-weight: bold;color:#DD2A24;font-weight:bold;">fi</span>
 <span style="color: #007800;">toname</span>=<span style="color: #ff0000;color: #111;">&quot;./&quot;</span>$<span style="color: #7a0874; font-weight: bold;color: #CCC;">&#40;</span> <span style="color: #7a0874; font-weight: bold;color: #8FB394;">echo</span> <span style="color: #007800;color: blue;">$file</span> <span style="color: #000000; font-weight: bold;color: #CCC;">|</span> <span style="color: #c20cb9; font-weight: bold;color: #577A61;">cut</span> <span style="color: #660033;">-f1</span> -d.<span style="color: #7a0874; font-weight: bold;color: #CCC;">&#41;</span><span style="color: #ff0000;color: #111;">&quot;_&quot;</span><span style="color: #007800;">$1</span><span style="color: #ff0000;color: #111;">&quot;.png&quot;</span>
 convert <span style="color: #660033;">-channel</span> A <span style="color: #660033;">-geometry</span> <span style="color: #007800;">$1</span>x<span style="color: #007800;">$1</span> <span style="color: #660033;">-quality</span> <span style="color: #000000;color: #DDD;">100</span> <span style="color: #007800;color: blue;">$file</span> <span style="color: #007800;color: blue;">$toname</span>
<span style="color: #000000; font-weight: bold;color:#DD2A24;font-weight:bold;">done</span></pre></div></div><p>Делаем его выполняемым (<code>chmod +x ~/bin/resize.sh</code>), добавляем в <strong>~/.bashrc</strong> <code>export PATH=$PATH;~/bin</code> чтобы мы могли вызывать это откуда нам вздумается и в терминале выполняем <code>source ~/.bashrc</code> чтобы наши изменения вступили в силу.</p><p>Теперь берём наш любимый файл-менеджер, например <strong>Thunar</strong>(стандартный в XFCE). Жмём правой кнопкой по картинкам, которые надо отресайзить, допустим до 32 пикселей, и &laquo;выбираем открыть  с помощью&raquo;.<br
/> Там нам надо выбрать пункт &laquo;комманда&raquo; и вписать туда: &laquo;<code>resize.sh 32 %N</code>&laquo;. не забудте снять галочку &laquo;Использовать эту программу для запуска файлов такого типа&raquo;, а то Thunar будет <em>запускать ресайз PNG картинок</em>, вместо например просмоторщика картинок xfce.</p><p>Всё, теперь у нас появится файл вида <code>старый_файл_32.png</code>. Причем эта команда действует даже для несколько выбранных одновременно картинок. И никакой потери прозрачности PNG!</p><p>Для JPG надо в скрипте менять расширение и убирать <code>-channel A</code>, который отвечает собственно за transparency(прозрачность). Для GIF картинок его скорее всего надо будет оставить.</p><p>Вот так. Пользуйтесь на здоровье.</p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/VeviGU06NCQ" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2010/01/resizing-png-images-in-thunar-with-transparency.html/feed</wfw:commentRss> <slash:comments>1</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2010/01/resizing-png-images-in-thunar-with-transparency.html</feedburner:origLink></item> <item><title>Перенос MySQL в другую папку/раздел на Debian/Ubuntu</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/xY0sKgYe1cQ/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html</link> <comments>http://blog.bethrezen.ru/2009/12/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html#comments</comments> <pubDate>Sat, 19 Dec 2009 08:51:38 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[linux]]></category> <category><![CDATA[apparmor]]></category> <category><![CDATA[debian]]></category> <category><![CDATA[mysql]]></category> <category><![CDATA[ubuntu]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=244</guid> <description><![CDATA[Недавно мне пришлось переместить данные MySQL в другую папку(а точнее на другой раздел) на Debian Linux 5.0.3. Логично, что простым переносом файлов тут не отделаешься, надо что-то где-то прописать. По-умолчанию данные MySQL лежат в /var/lib/mysql. Мне захотелось, чтобы они были в /home/mysql. Переносим папку mysql куда нам нужно, затем лезем в конфиг MySQL (/etc/mysql/my.cnf). Там [...]]]></description> <content:encoded><![CDATA[<p>Недавно мне пришлось переместить данные MySQL в другую папку(а точнее на другой раздел) на <strong>Debian Linux 5.0.3</strong>.</p><p>Логично, что простым переносом файлов тут не отделаешься, надо что-то где-то прописать.</p><p>По-умолчанию данные MySQL лежат в <strong>/var/lib/mysql</strong>. Мне захотелось, чтобы они были в <strong>/home/mysql</strong>. Переносим папку mysql куда нам нужно, затем лезем в конфиг MySQL (<strong>/etc/mysql/my.cnf</strong>).</p><p>Там есть опция:</p><div
class="wp_syntax"><div
class="code"><pre class="ini" style="font-family:monospace;color: #FCFFBA;">datadir         <span style="color: #000066; font-weight:bold;color: #CCC;">=</span> /var/lib/mysql</pre></div></div><p>Вот её мы заменяем на следующее:</p><div
class="wp_syntax"><div
class="code"><pre class="ini" style="font-family:monospace;color: #FCFFBA;">datadir         <span style="color: #000066; font-weight:bold;color: #CCC;">=</span> /home/mysql</pre></div></div><p>Пробуем перезапустить наш MySQL сервер (/etc/init.d/mysql restart) и в итоге у нас ничего не запускается.</p><p>Смотрим tail /var/log/messages и видим приблизительно такое:</p><div
class="wp_syntax"><div
class="code"><pre class="abap" style="font-family:monospace;color: #FCFFBA;"> kernel<span style="color: #808080;color: #CCC;">:</span> <span style="color: #808080;color: #CCC;">&#91;</span> <span style="color: #3399ff;color: #DDD;">2714.258037</span><span style="color: #808080;color: #CCC;">&#93;</span> audit<span style="color: #808080;color: #CCC;">&#40;</span><span style="color: #3399ff;color: #DDD;">1227462526.718</span><span style="color: #808080;color: #CCC;">:</span><span style="color: #3399ff;color: #DDD;">13</span><span style="color: #808080;color: #CCC;">&#41;</span><span style="color: #808080;color: #CCC;">:</span> <span style="color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;color: #343832;">type</span><span style="color: #800080;">=</span><span style="color: #3399ff;color: #DDD;">1503</span> operation<span style="color: #800080;">=</span><span style="color: #808080; font-style: italic;color: #CDC;">&quot;inode_create&quot; requested_mask=&quot;w::&quot; denied_mask=&quot;w::&quot; name=&quot;/home/mysql/yii.test&quot; pid=19659 profile=&quot;/usr/sbin/mysqld&quot; namespace=&quot;default&quot;</span>
 kernel<span style="color: #808080;color: #CCC;">:</span> <span style="color: #808080;color: #CCC;">&#91;</span> <span style="color: #3399ff;color: #DDD;">2714.310572</span><span style="color: #808080;color: #CCC;">&#93;</span> audit<span style="color: #808080;color: #CCC;">&#40;</span><span style="color: #3399ff;color: #DDD;">1227462526.770</span><span style="color: #808080;color: #CCC;">:</span><span style="color: #3399ff;color: #DDD;">14</span><span style="color: #808080;color: #CCC;">&#41;</span><span style="color: #808080;color: #CCC;">:</span> <span style="color: #500066; text-transform: uppercase; font-weight: bold; zzz:keyword;color: #343832;">type</span><span style="color: #800080;">=</span><span style="color: #3399ff;color: #DDD;">1503</span> operation<span style="color: #800080;">=</span><span style="color: #808080; font-style: italic;color: #CDC;">&quot;inode_permission&quot; requested_mask=&quot;rw::&quot; denied_mask=&quot;rw::&quot; name=&quot;/home/mysql/ibdata1&quot; pid=19659 profile=&quot;/usr/sbin/mysqld&quot; namespace=&quot;default&quot;</span></pre></div></div><p>Это нам говорит о том, что политика <strong>AppArmor</strong> запрещает всякие манипуляции мусклу в новой папке. И это естественно, ведь AppArmor думает, что базы лежат всё там же, в /var/lib/mysql.</p><p>Значит надо переписать конфиг AppArmor. Открываем и редактируем <strong>/etc/apparmor.d/usr.sbin.mysqld</strong> . В нём меняем всё, где упоминается /var/lib/mysql на /home/mysql. Затем перезапускаем AppArmor и <strong>MySQL</strong>:</p><div
class="wp_syntax"><div
class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;"><span style="color: #c20cb9; font-weight: bold;color: #577A61;">sudo</span> service apparmor restart
<span style="color: #c20cb9; font-weight: bold;color: #577A61;">sudo</span> <span style="color: #000000; font-weight: bold;color: #CCC;">/</span>etc<span style="color: #000000; font-weight: bold;color: #CCC;">/</span>init.d<span style="color: #000000; font-weight: bold;color: #CCC;">/</span>mysql restart</pre></div></div><p>И у нас всё работает! Такая же схема для Ubuntu.</p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/xY0sKgYe1cQ" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2009/12/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html/feed</wfw:commentRss> <slash:comments>2</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2009/12/perenos-mysql-v-druguyu-papku-razdel-na-debian-ubuntu.html</feedburner:origLink></item> <item><title>Доступны репозитории Ubuntu Lucid Lynx</title><link>http://feedproxy.google.com/~r/PaisPorradaDeBethrezen/~3/ZKYKO51f8n4/ubuntu-lucid-lynx-repositories-apt-get-sources-list.html</link> <comments>http://blog.bethrezen.ru/2009/12/ubuntu-lucid-lynx-repositories-apt-get-sources-list.html#comments</comments> <pubDate>Wed, 16 Dec 2009 12:45:53 +0000</pubDate> <dc:creator>Bethrezen</dc:creator> <category><![CDATA[linux]]></category> <category><![CDATA[lucid lynx]]></category> <category><![CDATA[ubuntu]]></category><guid isPermaLink="false">http://blog.bethrezen.ru/?p=239</guid> <description><![CDATA[С недавнего времени доступны репозитории разрабатываемой версии Ubuntu Lucid Lynx. Для обновления до Ubuntu 10.04 LTS введите в консоли следующую команду: sudo do-release-upgrade -d -p Ubuntu 10.04 (Lucid Lynx) является LTS релизом и выйдет в апреле 2010 года. Будет поддерживаться особенно долго и тщательно.]]></description> <content:encoded><![CDATA[<p>С недавнего времени доступны репозитории разрабатываемой версии <strong>Ubuntu Lucid Lynx</strong>.<br
/> Для обновления до Ubuntu 10.04 LTS введите в консоли следующую команду:</p><div
class="wp_syntax"><div
class="code"><pre class="bash" style="font-family:monospace;color: #FCFFBA;"><span style="color: #c20cb9; font-weight: bold;color: #577A61;">sudo</span> do-release-upgrade <span style="color: #660033;">-d</span> <span style="color: #660033;">-p</span></pre></div></div><p>Ubuntu 10.04 (Lucid Lynx) является LTS релизом и выйдет в апреле 2010 года. Будет поддерживаться особенно долго и тщательно.</p> <img src="http://feeds.feedburner.com/~r/PaisPorradaDeBethrezen/~4/ZKYKO51f8n4" height="1" width="1"/>]]></content:encoded> <wfw:commentRss>http://blog.bethrezen.ru/2009/12/ubuntu-lucid-lynx-repositories-apt-get-sources-list.html/feed</wfw:commentRss> <slash:comments>0</slash:comments> <feedburner:origLink>http://blog.bethrezen.ru/2009/12/ubuntu-lucid-lynx-repositories-apt-get-sources-list.html</feedburner:origLink></item> </channel> </rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc
Page Caching using apc
Database Caching 17/68 queries in 0.031 seconds using apc

Served from: blog.bethrezen.ru @ 2012-01-25 18:24:12 -->

