<?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>goodguy о разработке &#187; Разное</title>
	<atom:link href="http://dev.good-guy.me/archives/category/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://dev.good-guy.me</link>
	<description>python, zope, php, sqlite, postgresql, mysql и прочее с чем сталкиваюсь</description>
	<lastBuildDate>Sun, 04 Dec 2011 17:17:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>К слову о многопоточности</title>
		<link>http://dev.good-guy.me/archives/502</link>
		<comments>http://dev.good-guy.me/archives/502#comments</comments>
		<pubDate>Fri, 04 Nov 2011 11:06:15 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[Языки]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twisted]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=502</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/502" title="К слову о многопоточности"></a>Довелось по работе столкнуться с сервисом шифрования, который был написан по словам авторов, вроде бы очень просто и примитивно, но протокол был очень неприятный: обмен шёл 18-байтовыми блоками символов через TCP-порт. Решил сделать к нему небольшой проксирующий сервис на twisted, &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/502">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/502" title="К слову о многопоточности"></a><p>Довелось по работе столкнуться с сервисом шифрования, который был написан по словам авторов, вроде бы очень просто и примитивно, но протокол был очень неприятный: обмен шёл 18-байтовыми блоками символов через TCP-порт. Решил сделать к нему небольшой проксирующий сервис на twisted, который бы вёл приём данных через HTTP POST запросы, выдавая результат в ответ. Стал проверять на скорость работы, и, этот «лёгкий простой» Java-сервис шифрования оказалось не выдержал и 100 единовременных запросов. Пришлось в тестах ограничиться 10-ю потоками, а заодно озадачиться вопросом как twisted переиспользует объекты протокола в многопоточном доступе (об этом другая история).</p>
<p>Мораль такова: как и <a href="http://michael-xiii.blogspot.com/">бывший коллега</a> в тестах обнаружил, что <a href="http://michael-xiii.blogspot.com/2011/10/pycurl-vs-httpclientfactorydeferred.html">twisted выдерживает на удивление столько потоков, что падаёт то, что стоит за ним</a>, так и здесь получилось, что то, что кажется кому-то простым и надёжным, на деле оказывается весьма падуче-тяжеловесным, когда речь идёт о высокой нагрузке. И спасибо разработчикам twisted за столь стремительный фреймворк <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/502/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wi-Fi в Ubuntu 11.04</title>
		<link>http://dev.good-guy.me/archives/475</link>
		<comments>http://dev.good-guy.me/archives/475#comments</comments>
		<pubDate>Fri, 29 Apr 2011 16:45:14 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[ПО]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=475</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/475" title="Wi-Fi в Ubuntu 11.04"></a>После установки свежей Ubuntu 11.04 (Natty Narwhal) на свой Ideapad U165 обнаружил, что Wi-Fi теперь не включается, даже если включить галочку &#171;Беспроводные соединения&#187; в Network Manager. Полдня было убито на копание в форумах, чтобы вытащить работающий рецепт для устройств broadcom &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/475">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/475" title="Wi-Fi в Ubuntu 11.04"></a><p style="text-align: justify">После установки свежей Ubuntu 11.04 (Natty Narwhal) на свой Ideapad U165 обнаружил, что Wi-Fi теперь не включается, даже если включить галочку &laquo;Беспроводные соединения&raquo; в Network Manager. Полдня было убито на копание в форумах, чтобы вытащить работающий рецепт для устройств broadcom с идентификатором <tt>14e4:4727</tt> (BCM4313): достаточно запретить модуль <tt>acer-wmi</tt></p>
<p><code><br />
modprobe -r acer-wmi<br />
</code></p>
<p style="text-align: justify">И после этого включить его в <tt>/etc/modprobe.d/blacklist.conf</tt>, чтобы этот поганец не мешался после перезагрузки.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/475/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Твиттерасты</title>
		<link>http://dev.good-guy.me/archives/447</link>
		<comments>http://dev.good-guy.me/archives/447#comments</comments>
		<pubDate>Thu, 17 Feb 2011 07:12:42 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=447</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/447" title="Твиттерасты"></a>Когда смотришь конференцию вроде HTML5 Camp всегда так смешно наблюдать как в модной колонке &#171;Twitter&#187; стадо повторяет одно и то-же друг за другом, стремясь засветиться.]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/447" title="Твиттерасты"></a><p style="text-align: justify">Когда смотришь конференцию вроде <a href="http://www.microsoft.com/ru-ru/events/html5camp/">HTML5 Camp</a> всегда так смешно наблюдать как в модной колонке &laquo;Twitter&raquo; стадо повторяет одно и то-же друг за другом, стремясь засветиться.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/447/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оперативность = любовь клиентов</title>
		<link>http://dev.good-guy.me/archives/429</link>
		<comments>http://dev.good-guy.me/archives/429#comments</comments>
		<pubDate>Fri, 12 Nov 2010 13:12:59 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=429</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/429" title="Оперативность = любовь клиентов"></a>Вчера, на волне регистрации доменов в зоне .рф завёл пару адресов для своих проектов и собрался уже было использовать Linode в качестве DNS, как выяснилось, что у них национальные домены не поддерживаются. Огорчённый сим фактом завёл тикет и, не успел &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/429">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/429" title="Оперативность = любовь клиентов"></a><p style="text-align: justify">Вчера, на волне регистрации доменов в зоне .рф завёл пару адресов для своих проектов и собрался уже было использовать <a href="http://linode.com">Linode</a> в качестве DNS, как выяснилось, что у них национальные домены не поддерживаются. Огорчённый сим фактом завёл тикет и, не успел дойти до дома, как поддержка появилась и работает! Ещё один плюс в копилку карму этой компании.</p>
<p style="text-align: justify">А вот один игровой сервис уже два года шлёт мне письма о всяких своих новостях, из-за регистрации, сделанной там по глупости. А ведь ещё тогда завёл у них запрос на удаление аккаунта (опции такой в интерфейсе не было вообще). На днях повторил запрос, а воз и ныне там &mdash; ни прекратить слать своё <a href="http://4game.ru">говно</a> ни стереть регистрацию они не могут/не хотят.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/429/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ещё про почтовые сервера</title>
		<link>http://dev.good-guy.me/archives/425</link>
		<comments>http://dev.good-guy.me/archives/425#comments</comments>
		<pubDate>Sat, 25 Sep 2010 20:16:29 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=425</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/425" title="Ещё про почтовые сервера"></a>Возвращаясь к предыдущей записи: одна весьма крупная и известная телекомпания не гнушается настроить свой почтовый сервер так, чтобы он в команде HELO называл себя &#171;bender&#187;. Всем конечно приятно вспомнить героя с именем Остап-Сулейман-Берта-Мария-Бендер-Бей из хорошей книги (да, здесь должен быть &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/425">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/425" title="Ещё про почтовые сервера"></a><p style="text-align: justify">Возвращаясь к <a href="http://dev.good-guy.me/archives/422">предыдущей записи</a>: одна весьма крупная и известная телекомпания не гнушается настроить свой почтовый сервер так, чтобы он в команде HELO называл себя &laquo;bender&raquo;. Всем конечно приятно вспомнить героя с именем <a href="http://ru.wikipedia.org/wiki/%D0%9E%D1%81%D1%82%D0%B0%D0%BF_%D0%91%D0%B5%D0%BD%D0%B4%D0%B5%D1%80">Остап-Сулейман-Берта-Мария-Бендер-Бей</a> из хорошей книги (да, здесь должен быть тег <tt>irony</tt>), но правильно настроенные против спама почтовые системы разорвут соединение при такой команде HELO и вы не сможете ни восстановить пароль, ни получить код активации вашего профиля.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/425/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Халатность в SPF</title>
		<link>http://dev.good-guy.me/archives/422</link>
		<comments>http://dev.good-guy.me/archives/422#comments</comments>
		<pubDate>Mon, 20 Sep 2010 15:20:48 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://dev.good-guy.me/?p=422</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/422" title="Халатность в SPF"></a>Довольно давно пользуюсь на своём почтовом сервере модулем проверки письма на соответствие SPF-записям в DNS отправителя. Сегодня попался первый случай, когда она зарезала письмо, из-за халатности администраторов. С одного довольно серьёзного сайта с сериалами было отправлено мне письмо с приглашением &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/422">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/422" title="Халатность в SPF"></a><p style="text-align: justify">Довольно давно пользуюсь на своём почтовом сервере модулем проверки письма на соответствие <a href="http://www.openspf.org/">SPF</a>-записям в DNS отправителя. Сегодня попался первый случай, когда она зарезала письмо, из-за халатности администраторов. С одного довольно серьёзного сайта с сериалами было отправлено мне письмо с приглашением (иначе попасть было никак), и доставлять его мне напрямую взялся сервер, отсутствующий в SPF-записи как возможный отправитель. Причём глупо выглядит когда проект, использующий явно не один сервер, представляется в SMTP совершенно другим доменом (но ладно, может у них до почтового сервера руки не дошли). Но факт &mdash; письмо зарезано, администраторам отправлено описание проблемы, но пока они молчат с решением.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/422/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получение приватного SSL-ключа без пароля</title>
		<link>http://dev.good-guy.me/archives/389</link>
		<comments>http://dev.good-guy.me/archives/389#comments</comments>
		<pubDate>Thu, 29 Oct 2009 10:32:57 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[ПО]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://dev.goodguy.spb.ru/?p=389</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/389" title="Получение приватного SSL-ключа без пароля"></a>Защищать приватный ключ SSL-соединений паролем в большинстве случаев очень хорошая идея, но некоторое ПО (в частности некоторые классы PHP) не всегда нормально воспринимают такие файлы, особенно в формате PEM. Чтобы дать им счастье и умиротворение достаточно с помощью openssl провести &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/389">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/389" title="Получение приватного SSL-ключа без пароля"></a><p style="text-align: justify">Защищать приватный ключ SSL-соединений паролем в большинстве случаев очень хорошая идея, но некоторое ПО (в частности некоторые классы PHP) не всегда нормально воспринимают такие файлы, особенно в формате PEM. Чтобы дать им счастье и умиротворение достаточно с помощью <tt>openssl</tt> провести пару простых операций импорта-экспорта и получить желаемый файл без паролей:
<pre>
cat my.crt my.key > my.pem
openssl pkcs12 -export -in my.pem -nodes -out my.pfx
openssl pkcs12 -in my.pfx -out my-nodes.key -nodes -nocerts
</pre>
<p style="text-align: justify">В примере из файлов <tt>my.crt</tt> и <tt>my.key</tt> получаем незащищенный файл <tt>my-nodes.key</tt>. Взято <a href="http://www.digizenstudio.com/blog/2007/07/28/export-a-private-key-without-encryption-using-openssl/">отсюда</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/389/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unknown SSL protocol error</title>
		<link>http://dev.good-guy.me/archives/371</link>
		<comments>http://dev.good-guy.me/archives/371#comments</comments>
		<pubDate>Fri, 28 Aug 2009 13:22:48 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[ПО]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://dev.goodguy.spb.ru/?p=371</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/371" title="Unknown SSL protocol error"></a>При запросе из PHP с помощью HTTPRequest к интерфейсу одной серьёзной биллинговой системы получал постоянно ошибку «Unknown SSL protocol error in connection to xxx.xxx.xxx.xxx:443». Быстрый взгляд в гугл подсказал только перебирать параметры, что оказалось вполне верной догадкой: оказывается хост нормальное &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/371">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/371" title="Unknown SSL protocol error"></a><p style="text-align: justify">При запросе из PHP с помощью <tt><a href="http://ru.php.net/manual/en/class.httprequest.php">HTTPRequest</a></tt> к интерфейсу одной серьёзной биллинговой системы получал постоянно ошибку «<tt>Unknown SSL protocol error in connection to xxx.xxx.xxx.xxx:443</tt>». Быстрый взгляд в гугл подсказал только перебирать параметры, что оказалось вполне верной догадкой: оказывается хост нормальное работал с SSLv2, который не использовался при соединении. Пришлось указать принудительно строкой:</p>
<pre name="code" class="php">
$req-&gt;setOptions(array('ssl' =&gt; array('version' =&gt; SSL_VERSION_SSLv2)));
</pre>
<p style="text-align: justify">Потом правда всплыли и другие прелести, вроде отдачи XML в UTF-8 с типом «<tt>text/html; charset=ISO-8859-1</tt>», но такие шутки находятся быстрее и решаются проще.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/371/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Загадка бытия</title>
		<link>http://dev.good-guy.me/archives/369</link>
		<comments>http://dev.good-guy.me/archives/369#comments</comments>
		<pubDate>Thu, 18 Jun 2009 07:09:46 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[Разное]]></category>

		<guid isPermaLink="false">http://dev.goodguy.spb.ru/archives/369</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/369" title="Загадка бытия"></a>Почему в Eclipse до сих пор не сделали такой банальной вещи как цветовая схема?]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/369" title="Загадка бытия"></a><p style="text-align: justify">Почему в <a href="http://eclipse.org">Eclipse</a> до сих пор не сделали такой банальной вещи как цветовая схема?</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/369/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Чудны дела</title>
		<link>http://dev.good-guy.me/archives/364</link>
		<comments>http://dev.good-guy.me/archives/364#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:45:57 +0000</pubDate>
		<dc:creator>goodguy</dc:creator>
				<category><![CDATA[ПО]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[велосипед]]></category>

		<guid isPermaLink="false">http://dev.goodguy.spb.ru/?p=364</guid>
		<description><![CDATA[<a href="http://dev.good-guy.me/archives/364" title="Чудны дела"></a>Удивительно, но совсем рядом с теми людьми, кто проводит конференции разработчиков высоконагруженных систем находятся довольно забавные люди. Кто-то сравнивает непонятно что, непонятно с чем, а кто-то, видимо, начитавшись подобного пишет платёжные системы на ASP.NET, сталкивается с проблемами нагрузки и, вместо &#8230;<p class="read-more"><a href="http://dev.good-guy.me/archives/364">Читать далее &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://dev.good-guy.me/archives/364" title="Чудны дела"></a><p style="text-align: justify">Удивительно, но совсем рядом с теми людьми, кто проводит <a href="http://highload.ru/">конференции разработчиков высоконагруженных систем</a> находятся довольно забавные люди. Кто-то <a href="http://hlabs.spb.ru/news/fake_comparisons.html">сравнивает непонятно что, непонятно с чем</a>, а кто-то, видимо, начитавшись подобного пишет платёжные системы на ASP.NET, сталкивается с проблемами нагрузки и, вместо того чтобы заниматься оптимизацией БД, репликацией, установкой load balancer&#8217;а, делает такой финт: ставит несколько серверов, обслуживающих веб-запросы, которые за собой лезут к единой базе. Клиентам предлагает самостоятельно искать, какой-же из серверов сейчас доступен. Но даже, если ты счастливо находишь этот доступный сервер, это не значит, что ты совершишь свою операцию: база то одна на всех, и задержка ответов у неё дикая, и, например, список доступных провайдеров выдать быстро уже не может. Ну хорошо, отвечают они, вот вы действительно не можете получить этот список, так попробуйте увеличить время ожидания ответа. Но, максимальный таймаут прописан уже на их стороне, в обслуживающем веб-сервере и увеличить его никак! Задаюсь теперь вопросом: сколько же должно быть записей, чтобы для их получения и форматирования в <tt>SOAP</tt>-ответ требовалось более 3 минут? Вопрос почему же нельзя сделать простейший <tt>master (read/write) — slave (read)</tt> и брать статусы, списки и т.п. со второго сервера, а так-же почему бы не сделать простейший скрипт распределения нагрузки самим уже отпал <img src='http://dev.good-guy.me/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify"><strong>Дополнение:</strong> В процессе работы выяснился момент, что у ребят в<tt> WSDL</tt> были указаны неверные адреса сервиса, из-за этого и происходили проблемы с получением списка. Но перебор серверов всё-равно требуется.</p>
]]></content:encoded>
			<wfw:commentRss>http://dev.good-guy.me/archives/364/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

