<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><!-- generator="wordpress/2.2.3" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">

<channel>
	<title>KMiNT21: Blog</title>
	<link>http://blog.kmint21.com</link>
	<description />
	<pubDate>Tue, 24 Apr 2012 18:28:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/kmint21" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="kmint21" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">kmint21</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>IPv6 + IPv4 = почти детективная история с граблями</title>
		<link>http://blog.kmint21.com/2012/04/25/ipv6-ipv4/</link>
		<comments>http://blog.kmint21.com/2012/04/25/ipv6-ipv4/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 18:01:13 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Безопасность]]></category>

		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2012/04/25/ipv6-ipv4/</guid>
		<description><![CDATA[Представьте ситуацию. Есть &#8220;свежий&#8221; выделенный сервер (Linux -&#62; Debian), навожу на нем порядок  - выключаю лишние сервисы, тюнингую различные настройки и так далее. Приходится и почитывать всякое новое, так как после работы с FreeBSD обнаруживается довольно много отличий. Наконец, вывод команды sockstat  -l становится желаемым.
Но тут же вспоминаю, что был же еще включен ProFTPd. [...]]]></description>
			<content:encoded><![CDATA[<p>Представьте ситуацию. Есть &#8220;свежий&#8221; выделенный сервер (Linux -&gt; Debian), навожу на нем порядок  - выключаю лишние сервисы, тюнингую различные настройки и так далее. Приходится и почитывать всякое новое, так как после работы с FreeBSD обнаруживается довольно много отличий. Наконец, вывод команды <strong>sockstat  -l </strong>становится желаемым.</p>
<p>Но тут же вспоминаю, что был же еще включен ProFTPd. Хотя в списке открытых портов 21-го я не вижу. Странно. Запускаю FAR, создаю в нем новое подключение, нажимаю и &#8230;. Мои глаза расширяются - сервис откликается. Снова перепроверяю  sockstat, но понять ничего не могу и глубоко задумываюсь&#8230;</p>
<p>Запускаю NetTools, ввожу IP, включаю сканирование портов и&#8230; снова удивляюсь. Результат совпадает с выводом команды sockstat на самом сервере - 21-й порт сканер не нашел.</p>
<p>Теперь для верности качаю NetCat под Windows, запускаю &#8220;nc SERVER_IP 21&#8243; и&#8230; получаю приветствие FTP-сервера. Вот тут-то я вхожу в полный ступор. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Ум за разум начинает заходить, я пытаюсь увидеть в этом всем хоть какую-то логику.</p>
<p>Цепляюсь за главное - раз sockstat не показывает открытый порт, но он ЕСТЬ (как в &#8220;ДМБ&#8221; про суслика) - точно что-то не так с  sockstat. Гуглю на тему того почему эта утилита может выдавать не все, что есть на самом деле. Выясняется, что sockstat совсем не учитывает IPv6 (точнее, версия в Debian 6 - там нет поддержки ключа &#8220;-6&#8243;).</p>
<p>Ага, то есть, получается ProFTPd включен только для IPv6 протокола? Вдруг потому сканер в NetTools и не увидел 21- порт, в то время как NetCat и плагин ftp у FAR-а законнектились (и они его поддерживают)? Да ну нет, ерунда какая-то, даже если у меня в Win7 и включен IPv6, все равно наши провайдерские серваки не обрабатывают его. Да и вышестоящие провайдеры тоже. А вдруг я себе локально шлюз поставил и забыл?</p>
<p>Пингую IPv6 адрес сервера - нет ответа (а с веб-сервисов пингования ipv6 адресов - пингуется). Что и следовало ожидать. Снова пробую зайти на ftp - заходит&#8230; Ступор&#8230;</p>
<p>Наконец, МЫСЛЬ. У меня на сервере включен ip_forward, так как я использую виртуализацию на базе OpenVZ  (на физическом сервере запущена виртуалка со своим адресом, на которой работает apache в связке с nginx). Вдруг при попытке зайти на закрытый порт пакет подхватывается стеком IPv6? Звучит бредово, но других пока идей нет совсем.</p>
<p>Для теста делаю на пару секунд echo 0 &gt; /proc/sys/net/ipv4/ip_forward , тестирую FTP, возвращаю обратно 1. Мда&#8230;.. Сервис продолжает откликаться! <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Тут уже вспоминаю, что проще было сделать tcpdump port 21. Заодно узнаю как смотреть траффик только для 6-й версии протокола - <strong>tcpdump ip6</strong>. Дамп показывает, что работа идет по обычному IPv4!</p>
<p><strong>Но тогда почему я не вижу ничего в sockstat -l ????</strong></p>
<p><strong><br />
</strong></p>
<p><strong>==============================<br />
</strong></p>
<p>Внимание, РАЗГАДКА!. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Естественно, после такого поворота я поискал как еще можно смотреть открытые порты. Один из альтернативных вариантов - <strong>lsof -i</strong>.</p>
<p>Команда lsof -i|grep proft выдает такой результат:</p>
<p><em>proftpd   11643     proftpd    1u  IPv6  30371      0t0  TCP *:ftp (LISTEN)</em></p>
<p>Обратите внимание -  IPv6, но  *:ftp, т.е. биндится на все интерфейсы в системе! А устаревший sockstat просто этого не видит. Если в proftpd.conf опцию UseIPv6 выставить в off, то sockstat &#8220;прозревает&#8221;. Но главная мысль не в этом. Вывод:</p>
<p><strong>Внимание! Если в Debian 6 поднят IPv6 протокол, то имейте в виду, что какой-то нежелательный сетевой сервис может запуститься так, что его абсолютно не будет видно с помощью sockstat! <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Используйте, например,  lsof -i. </strong></p>
<p>Плюс не помешает произвести полное внешнее сканирование с помощю <strong>Nessus</strong>, а изнутри - аудит при помощи <strong>Lynis</strong>.  Лишние сервисы из автозапуска легко убирать с помощью <strong>rcconf</strong>. В apache желательно включить <strong>mod_security</strong>, а на закуску - настроить пересылку логов системы на какой-то отдельный сервер.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=t60KT01w1XI:g_DTmjkABIQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=t60KT01w1XI:g_DTmjkABIQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=t60KT01w1XI:g_DTmjkABIQ:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2012/04/25/ipv6-ipv4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Лег под нож</title>
		<link>http://blog.kmint21.com/2012/03/25/zokb-org-ua/</link>
		<comments>http://blog.kmint21.com/2012/03/25/zokb-org-ua/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 10:28:58 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2012/03/25/zokb-org-ua/</guid>
		<description><![CDATA[Началось все примерно три года назад. Мы играли в футбол на полянке с искусственным покрытием. Шел дождь. Во время борьбы на скользком поле я получил сильный удар в наружную часть левого колена. Игра для меня сразу закончилась, но тогда я еще не понял что же вообще произошло. Как только нога перестала беспокоить, я сразу &#8220;в [...]]]></description>
			<content:encoded><![CDATA[<p>Началось все примерно три года назад. Мы играли в футбол на полянке с искусственным покрытием. Шел дождь. Во время борьбы на скользком поле я получил сильный удар в наружную часть левого колена. Игра для меня сразу закончилась, но тогда я еще не понял что же вообще произошло. Как только нога перестала беспокоить, я сразу &#8220;в бой&#8221;. Но даже при небольшом контакте с коленом (или после неудачных движений) начались случаться рецидивы, после которых снова и снова требовалась пауза.</p>
<p>Когда начались проблемы со спуском с лестницы, я начал уже почитывать разные статьи и обдумывать как это дело лечить.  <a href="http://blog.kmint21.com/2012/03/25/zokb-org-ua/#more-633" class="more-link">(more&#8230;)</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=TA6ytIfD1xw:PJWIxpfulIo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=TA6ytIfD1xw:PJWIxpfulIo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=TA6ytIfD1xw:PJWIxpfulIo:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2012/03/25/zokb-org-ua/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Когда компьютеры были большими, а программисты - маленькими, или The History of Life - 5</title>
		<link>http://blog.kmint21.com/2012/02/28/zx5/</link>
		<comments>http://blog.kmint21.com/2012/02/28/zx5/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 14:53:23 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Безопасность]]></category>

		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2012/02/28/zx5/</guid>
		<description><![CDATA[&#160;
Продолжение рассказа. Начало тут - blog.kmint21.com/…/zx-spectrum-basic/
[1998-й год.] Ну все, теперь мне не нужно было засиживаться на работе. Теперь меня дома ждал компьютер!  Само собой, началось все c попыток установить все, что только  можно установить и посмотреть все, что только можно посмотреть. Но &#8220;отпустило&#8221; меня довольно быстро, и я начал все больше и больше вникать в [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><strong>Продолжение рассказа. Начало тут - <a href="http://blog.kmint21.com/2007/11/25/zx-spectrum-basic/">blog.kmint21.com/…/zx-spectrum-basic/</a></strong></p>
<p class="MsoNormal">[1998-й год.] Ну все, теперь мне не нужно было засиживаться на работе. Теперь меня дома ждал компьютер!<span>  </span>Само собой, началось все <span lang="EN-US">c</span> попыток установить все, что только <span> </span>можно установить и посмотреть все, что только можно посмотреть. Но &#8220;отпустило&#8221; меня довольно быстро, и я начал все больше и больше вникать в дебри системы <span lang="EN-US">&#8220;Windows</span> 95&#8243;.</p>
<p class="MsoNormal">В это время я начал подрабатывать на решении заданий по программированию для студентов (дневников и заочников). Деньги выходили весьма приятные, учитывая копеечную зарплату лаборанта. Это место работы было хоть и веселое, но не простое. Каждое утро приходилось в режиме зомби на трамвае приезжать на работу до начала пар, вытерпливать все эту дневную суету, а вечером опечатывать <span> </span>помещение и ставить коридор на сигнализацию. Не высыпался я ужасно, потому с утра я ехал обычно стоя с закрытыми глазами, а вечером, когда можно было ехать сидя, я периодически вырубался.</p>
<p class="MsoNormal">Зато во время пар можно было немного расслабиться. Бывало, сяду за свободный компьютер, выберу жертву, набирающую на компьютере очередную программку на турбо-паскале, и пошлю туда сообщение командой net send : &#8220;Внимание! Произошел перегрев центрального процессора. Срочно отойдите от компьютера на три шага!&#8221;. И ведь тогда это было смешно, да. Правда, со временем некоторые студенты <span> </span>ознакомились с командой net send и, бывало, по неосмотрительности &#8220;звездочкой&#8221; отсылали какие-то глупости одновременно на все компьютеры двух компьютерных классов, что сопровождалось «хоровым <span lang="EN-US">beep</span>-ом», прорезающим тишину занятий. Приходилось потом разбираться с негодяями.</p>
<p class="MsoNormal">Но вот что интересно&#8230; Своего личного аккаунта у лаборантов не было, а нас такой расклад с коллегой (лаборант второго нашего компьютерного класса) никак не устраивал. Интернета в классах все равно не было, потому ничем более интересным мы заняться все равно и не могли, так, благодаря <a target="_blank" href="http://blog.kmint21.com/statdir/stat.php?rurl=http://www.l0phtcrack.com/">l0phtcrack</a> и осторожности, у нас на руках появились пароли почти всех преподавателей, администратора и даже пароли на <span lang="EN-US">BIOS</span>.</p>
<p class="MsoNormal">А затем я взялся за изучение команды <span lang="EN-US">telnet</span>, перебирая вручную(!) пароли входа на какой-то хост во внешней сети. Причем, меня не остановило и первое предупреждение, переданное через преподавателя о том, что, якобы, кто-то отсюда пытается зайти на компьютер в бухгалтерии. После второго предупреждения (и угрозы заставить меня писать объяснительную) я осознал глупость данного занятия и прекратил, так что моё знакомство с <span lang="EN-US">unix</span> системами пришлось отложить на потом.</p>
<p class="MsoNormal">И вот, наконец, до некоторых компьютеров наших аудиторий «дошел» Интернет! Это был просто праздник. Медленно, но уверенно, я каждый день набивал свою 3.5-дюймовую дискету статьями по безопасности и программированию, чтобы дома уже эту информацию обрабатывать и осмысливать. А для записи своих мыслей я создал на компьютере файлик <span lang="EN-US">HISTORY</span>.<span lang="EN-US">TXT</span>.</p>
<p class="MsoNormal">Благодаря этому файлику, например, я могу сейчас узнать, что свою первую программу (<span lang="EN-US">WinAmp</span>) я взломал 6 декабря 1999 года. До чего же сейчас интересно читать свои старые записи, которым более 12 лет!</p>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>1.10.99.</em><span><em>  </em></span><em>С++. Макросы. Макрос, копирующий *.PWL в любой каталог.</em><span><em>  </em></span><em>План - достать доку по написанию макросов (справочник по функциям).</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>2.10.99 C++. Определение</em><span><em> </em></span><em>типов</em><span lang="EN-US"><em>, cout &lt;&lt;, pointer &#8230;</em><span><em>   </em></span><em>Far - KeyMakros AltX</em></span></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><span lang="EN-US"><em>3.10.99 C++. </em></span><em>Дописал программу ЧИСЛА. </em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>4.10.99 Достал слабенькую доку по макросам. Классная команда SHELL !!!</em><span><em>   </em></span><em>Изменил макрос1</em><span><em>  </em></span><em>- чтоб запускал блокнот и писал текст.</em><span><em>  </em></span><em>Короче - нужно скорее устанавливать Office97 !!!</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>5.10.99 На работе - облом! Инет нам отрубили. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </em><span><em>  </em></span><em>Уяснил разницу между Word Basic и Visual Basic. Написал парочку</em><span><em>  </em></span><em>макросов. Начал писать инет-страницу. C++ Файлы.</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>6.10.99 C++. На работе на 01 компе написал макрос AutoExec.</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>7.10.99 VB - потихоньку. Идея - на C++ написать &#8230; забыл что <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>9.10.99 С++ Попытался написать архиватор.</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>10.10.99 C++ Начал (уже какой раз!) писать TOP SECRET. Жду </em><span lang="EN-US"><em>CD</em></span><em>-</em><span lang="EN-US"><em>ROM</em></span><em>.</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>14.10.99 C++ На работе целый день писал TOP SECRET!</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>16.10.99(Сб) TOP SECRET . Были на концерте, потом устроили свой концерт.</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><span lang="EN-US"><em>18.10.99 C++ TOP SECRET. </em></span></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><span lang="EN-US"><em>26.10.99 </em></span><em>Достал</em><span lang="EN-US"><em> Delphi 3.01. </em></span><em>План - разобраться с классами на C++</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>13.11.99 . До 1 ночи (пока еще до часу) писал на ассемблере! Все не так уж и сложно !</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>14.11.99 - 15.11.99 Потерялся во времени ( *** UFO I *** )</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>06.12.99 ПН Не знаю сколько там часов( и минут)&#8230; Только что ломанул WINAMP !!!!!!!!!</em><span><em>  </em></span><em>Из-за отладчика, часы приостанавливались и показывают неправильно. Скоро ехать в универ, забирать трудовую книжку. &#8230; Долго я пытался чего-нибудь взломать. Наконец-то ! Регистрация в ВинАмпе - имя:К код:284957 !</em></p></blockquote>
<blockquote><p><em>  </em></p></blockquote>
<p class="MsoNormal">&nbsp;</p>
<blockquote><p><em>12.12.99 Сб-Вс Так как сейчас 2.41. Только что получился первый резидент, перехватывающий</em><span><em>  </em></span><em>21h прерывание. Заменяет буквы а на о ! Весело! Первый шаг сделан. Поехали дальше.</em></p></blockquote>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Тем временем, мой полуторагодичный срок работы в ЗГТУ подошел к концу – человек, которого я временно замещал, вернулся из армии. Особо не раздумывая, я согласился на предложение своего друга пойти работать на «Искру» (военное предприятие), где так же всю жизнь инженерами работали мои родители. Но об этом – в следующий раз.</p>
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><strong>Продолжение следует.</strong><strong><o:p></o:p></strong></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=nk_H68Mj3qw:nmTooayFy3U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=nk_H68Mj3qw:nmTooayFy3U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=nk_H68Mj3qw:nmTooayFy3U:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2012/02/28/zx5/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Основы изготовления игровых ботов</title>
		<link>http://blog.kmint21.com/2012/02/01/game-bot/</link>
		<comments>http://blog.kmint21.com/2012/02/01/game-bot/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 09:31:20 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2012/02/01/game-bot/</guid>
		<description><![CDATA[В этой небольшой статейке я приведу пример изготовления бота &#8220;навесного&#8221; типа для DirectX игры на примере Pro Evolution Soccer 2011/2012.  Естественно, наш бот будет не в футбол играть, а только запускать матчи МЛО в режиме тренера, пока мы спим.  Цель - финансы.
Итак, мы имеем стандартную DirectX-игру, запущенную в окне. Что нам нужно? Распознать то, [...]]]></description>
			<content:encoded><![CDATA[<p>В этой небольшой статейке я приведу пример изготовления бота &#8220;навесного&#8221; типа для DirectX игры на примере Pro Evolution Soccer 2011/2012.  Естественно, наш бот будет не в футбол играть, а только запускать матчи МЛО в режиме тренера, пока мы спим. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Цель - финансы.</p>
<p>Итак, мы имеем стандартную DirectX-игру, запущенную в окне. Что нам нужно? Распознать то, что отображено на экране и послать туда нажатие соответствующих клавиш. Для распознавания/опознания мы будем использовать библиотеку OpenCV (Open Source Computer Vision Library) - <a href="http://ru.wikipedia.org/wiki/OpenCV">ru.wikipedia.org/wiki/OpenCV</a></p>
<p>Для начала нам нужно найти окно нашего DirectX-приложения и сдампить экран. Мы привяжем это к таймеру и будем делать каждые ХХ секунд. Самый простой вариант:</p>
<p>HWND hWnd = FindWindow(0,&#8221;Pro Evolution Soccer 2011&#8243;), SetForegroundWindow(hWnd), Form1-&gt;ImageEnViewPES-&gt;IO-&gt;CaptureFromScreen(iecsForegroundWindow, 0); - используем библиотеку OpenCV для более простого захвата содержимого активного окна.</p>
<p>Но если вы не хотите, чтобы фокус на это окно переводился каждые несколько секунд, и за компьютером можно было спокойно работать (особенно, если у вас два монитора), то лучше делать все сложнее - делать полный дамп всего видимого пространства, а в нем искать вхождение главной иконки приложения (той, сто слева от заголовка окна) с помощью функций cvMatchTemplate() и cvMinMaxLoc(), чтобы вычислять нужные координаты и вырезать область изображения без смены фокуса окна.</p>
<p>Теперь нужно определить в каком режиме/диалоге игры мы находимся. Как это сделать? Для начала нам нужно определить какие области экрана имеют объекты, к наличию/отсутствию которых мы можем привязаться. Например, если мы видим на экране такую кнопку (обведена красным на скриншоте), то это значит, что мы в кубковом режиме МЛО, где необходимо нажать клавишу &#8220;Enter&#8221; для запуска очередного матча.</p>
<p><img src="http://blog.kmint21.com/wp-content/uploads/2012/02/cup-menu2.jpg" alt="pes-2011-mlo" /></p>
<p>Далее следует уже большая и нудная работа по &#8220;подготовке базы&#8221; - необходимо сделать скриншоты в разных игровых ситуациях,  подобрать координаты границ объектов для сравнения с областью экрана, &#8220;процент схожести&#8221;, какой можно считать пороговым (многие менюшки не статичны, так что 100-процентного совпадения не будет) и описать эмуляцию каких клавиш нам нужно туда передавать.</p>
<p>Для сравнения двух изображений и получения процента  схожести на выходе в OpenCV у компонента  ImageEnView  существует функция CompareWith(). Для удобства, я обернул это все в отдельную функцию, которая у меня выглядит примерно так (немного упростил и выкинул лишний код для более наглядного просмотра):</p>
<p>bool ImgEq (double percent, char* filename, int x1, int y1, int x2, int y2)<br />
{<br />
Form1-&gt;ImageEnView2-&gt;Assign (Form1-&gt;ImageEnViewPES);<br />
Form1-&gt;ImageEnView2-&gt;Proc-&gt;Crop (x1-5,y1-5,x2-5,y2-5);<br />
Form1-&gt;ImageEnView1-&gt;IO-&gt;LoadFromFile(filename);<br />
Form1-&gt;ImageEnView1-&gt;Proc-&gt;Crop (x1,y1,x2,y2);<br />
double dPer = Form1-&gt;ImageEnView1-&gt;Proc-&gt;CompareWith(Form1-&gt;ImageEnView2-&gt;IEBitmap, NULL);</p>
<p>return (dPer &gt;= percent);<br />
}</p>
<p>Вызов этой функции выглядит так:</p>
<p>if (ImgEq(0.98, &#8220;points-2012.bmp&#8221;,410,390,700,500)) { &#8230; }</p>
<p>if (ImgEq(0.97, &#8220;mlo-message-2012.bmp&#8221;,750,230,950,520))  { &#8230; }</p>
<p>if (ImgEq(0.98, &#8220;cup-menu.bmp&#8221;,350,700,520,870))   { &#8230; }</p>
<p>Ну все! Теперь наша программка умеет определять текущий режим, в котором находится игра. Осталось только научиться передавать туда нужные комбинации клавиш. Так как нам нужно делать эмуляцию в DirectX приложении, то PostMessage/kbdevent тут работать не будут, необходимо передавать сканкоды с помощью SendInput(). Для того, чтобы можно было красиво описывать последовательности нажатий вызовами типа Key(DIKEYBOARD_X), я сделал такую функцию:</p>
<p>void Key ( int key)<br />
{<br />
INPUT input;<br />
memset(&amp;input,0,sizeof(INPUT));<br />
input.type=INPUT_KEYBOARD;<br />
input.ki.wScan = key; // direct-input scancode<br />
input.ki.dwFlags=0;<br />
SendInput(1,&amp;input,sizeof(INPUT));<br />
Sleep(50);<br />
input.ki.dwFlags=KEYEVENTF_KEYUP;<br />
SendInput(1,&amp;input,sizeof(INPUT));<br />
}<br />
А что дальше?  А дальше уже чистое творчество. Мой бот для PES2011, например, умеет определять все ситуации и на них реагировать - обрывы связи, служебные сообщения и т.п., умеет определять счет в игре и в зависимости от него посылать комбинации клавиш для смены тактики игры. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  А так же протоколирует читеров (игроков, которые при неудачном исходе матча к концу игры &#8220;портят соединение&#8221; так, чтобы матч был аннулирован).</p>
<p>Если вы уже давно подумывали о том, чтобы написать бота для своей любимой игры, но не все не доходили руки - попробуйте, это довольно творческий процесс, который затягивает. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=tjtIz-UEqpc:VVhHZS58WmY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=tjtIz-UEqpc:VVhHZS58WmY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=tjtIz-UEqpc:VVhHZS58WmY:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2012/02/01/game-bot/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SSD диск? Да, оно того стоит!</title>
		<link>http://blog.kmint21.com/2012/01/31/ssd/</link>
		<comments>http://blog.kmint21.com/2012/01/31/ssd/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 13:42:51 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2012/01/31/ssd/</guid>
		<description><![CDATA[В очередной раз вспомнил я про твердотельные накопители и задумался - а вдруг все-таки я замечу разницу. Сначала были очень большие сомнения - компьютер у меня работает круглосуточно, а перезагрузки бывают раз в несколько недель. А оперативки в 8 гигабайт вроде бы для всего хватает пока. Но я все-таки решил прочитать еще несколько статеек на [...]]]></description>
			<content:encoded><![CDATA[<p>В очередной раз вспомнил я про твердотельные накопители и задумался - а вдруг все-таки я замечу разницу. Сначала были очень большие сомнения - компьютер у меня работает круглосуточно, а перезагрузки бывают раз в несколько недель. А оперативки в 8 гигабайт вроде бы для всего хватает пока. Но я все-таки решил прочитать еще несколько статеек на тему SSD и обсуждения на &#8220;хабре&#8221;, параллельно представляя возможную конфигурацию системы. В итоге решил - а почему бы и не попробовать?</p>
<p>Прикинув какой объем диска меня устроит, я заказал <strong>Intel® SSD 320 Series на 80GB</strong> (2.5in, SATA 3Gb/s, 25nm, MLC)). Порадовало, что в комплекте шли крепления  для установки в стандартный 3.5&#8221; отсек. Пользуясь случаем, включил заодно в биосе AHCI для SATA,  установил с нуля Wn7-64bit и &#8230; начал поражаться скоростью отклика системы. Можно было бы предположить, что дело только в чистой системе, но нет. Сейчас уже снова в фоне у меня висят куча привычных мне приложений, но комфорт в работе ощущается намного больший, чем раньше.</p>
<p>Если интересно - по индексам производительности  Win7 теперь считает хард-диск самым широким местом, а не самым узким. Он имеет индекс 7.7, когда все остальное - 7.2.</p>
<p>На 15-й день использования подтвердилось то, что мне такого объема для системного диска будет более, чем достаточно. Сейчас около 70% диска свободно, а как основное &#8220;файлохранилище&#8221; используются остальные три винта SATA (1TB+1TB+750GB).</p>
<p>В Сети довольно много статей на тему оптимизации системы при использовании твердотельного диска в качестве системного. Добавлю лишь, что существует очень полезная программка <a target="_blank" href="http://blog.kmint21.com/statdir/stat.php?rurl=http://w3.win.tue.nl/nl/onderzoek/onderzoek_informatica/visualization/sequoiaview/">SequoiaView</a>, которая умеет выдавать наглядную карту размещения файлов на диске:</p>
<p><img alt="Sequoia View" src="http://blog.kmint21.com/wp-content/uploads/2012/01/736444cb4d.jpg" /></p>
<p>Кроме того, теперь я настроил автоматическое резервное копирование целиком всего системного диска, что намного удобней, если его объем лишь 80 гигабайт.</p>
<p>В общем, даже если ваша система работает в режиме 24х7,  и оперативки вам хватает с головой - все равно стоит задуматься - возможно, SSD-диск сможет заметно добавить комфорта в работе.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=kQhcimm3UOY:R6766_j8lVQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=kQhcimm3UOY:R6766_j8lVQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=kQhcimm3UOY:R6766_j8lVQ:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2012/01/31/ssd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Когда компьютеры были большими, а программисты - маленькими, или The History of Life - 4</title>
		<link>http://blog.kmint21.com/2012/01/26/zx4/</link>
		<comments>http://blog.kmint21.com/2012/01/26/zx4/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 20:15:09 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2012/01/26/zx4/</guid>
		<description><![CDATA[Продолжение рассказа. Начало тут - blog.kmint21.com/&#8230;/zx-spectrum-basic/
&#8230;
Наконец, этот день настал. Теперь я мог окончательно забыть про &#8220;ZX-Spectrum&#8221; - у меня появился сразу &#8220;Pentium&#8221; (100МГц) с настоящим монитором, клавиатурой и мышью, CD-ROM-ом и колонками!
Ощутите разницу - вместо телевизора теперь -  14&#8221;-монитор, а для загрузки ПО больше не нужно было включать магнитофон и ждать загрузки ~40 килобайт данных [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Продолжение рассказа. Начало тут - <a href="http://blog.kmint21.com/2007/11/25/zx-spectrum-basic/">blog.kmint21.com/&#8230;/zx-spectrum-basic/</a></strong></p>
<p>&#8230;</p>
<p>Наконец, этот день настал. Теперь я мог окончательно забыть про &#8220;ZX-Spectrum&#8221; - у меня появился сразу &#8220;Pentium&#8221; (100МГц) с настоящим монитором, клавиатурой и мышью, CD-ROM-ом и колонками!</p>
<p>Ощутите разницу - вместо телевизора теперь -  14&#8221;-монитор, а для загрузки ПО больше не нужно было включать магнитофон и ждать загрузки ~40 килобайт данных 3-5 минут. У нового компьютера был жесткий диск,   CD-ROM и дисковод <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Но &#8230; обо всем по порядку.</p>
<p>&#8230;</p>
<p>Шел 1998-й год. После года &#8220;релакса&#8221; я сделал вторую попытку поступить в ЗГТУ на программиста, но снова завалил физику. Видимо, сказалось то, что последние годы в школе я практически не делал домашних заданий. Старался все запомнить на уроках, а дома погружался в мир программирования. Бороться с этим было не возможно.</p>
<p>Пришлось поступить на заочную форму обучения, параллельно устроившись работать лаборантом в компьютерный класс в этом же университете на кафедру вычислительной математики. Надо было как-то деньги на обучение зарабатывать, а так даже скидка была на оплату и какой-никакой доступ к современным компьютерам. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img alt="ZNTU" src="http://blog.kmint21.com/wp-content/uploads/2012/01/zntu_main_building.jpg" /></p>
<p>Это был мой первый прямой контакт с платформой x86. В классе на компьютерах была установлена Windows NT 4.0. Если во время пары какой-нибудь компьютер был свободен, я, рискуя навлечь гнев начальника, всегда старался сесть и поковыряться в нем. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Как можно догадаться, и рабочий день у меня завершался не сразу. Дома такого компьютера  у меня еще не было, потому я на полную катушку использовал рабочее время. А еще мы  вечерами периодически секретно устраивали сетевые бои в Quake-1. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Дома на &#8220;ZX Spectrum&#8221; уже и смотреть было не интересно, потому в первом семестре я даже немножко поучился, что-то дома читал, разбирался и изучал разные глупые предметы, желая изучать только программирование и ничего более. Но в то же время на лекциях по программированию мне было невыносимо скучно. Сидеть и слушать то, что ты уже знаешь - это было просто потерей времени.</p>
<p>Но моя попытка поучить что-то совсем не интересное мне закончилась провалом. Несмотря на то, что мы и питались-то не очень, неожиданно моя бабушка из России передала деньги конкретно мне на покупку компьютера. С этого дня поменялось все!</p>
<p><a href="http://blog.kmint21.com/2012/02/28/zx5/"><strong>Продолжение - &#8220;Про файлик HISTORY.TXT :)&#8221;</strong></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=XMSiU27JAv0:PJDdPfqVWAw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=XMSiU27JAv0:PJDdPfqVWAw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=XMSiU27JAv0:PJDdPfqVWAw:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2012/01/26/zx4/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Без футбола - никак (PES 2012)</title>
		<link>http://blog.kmint21.com/2011/10/25/pes-2011-2012/</link>
		<comments>http://blog.kmint21.com/2011/10/25/pes-2011-2012/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 09:04:08 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2011/10/25/pes-2011-2012/</guid>
		<description><![CDATA[Не успели еще выключиться онлайн сервера Pro Evolution Soccer 2011, как я уже спешу пробовать свои силы в PES 2012. Не смотря на то, что я и вживую играю, и по ТВ смотрю, футбола мне много не бывает.  А когда мало - &#8220;догоняюсь&#8221; компьютерным.
Все виды кубков так и не удалось выиграть в PES 2011, [...]]]></description>
			<content:encoded><![CDATA[<p>Не успели еще выключиться онлайн сервера Pro Evolution Soccer 2011, как я уже спешу пробовать свои силы в PES 2012. Не смотря на то, что я и вживую играю, и по ТВ смотрю, футбола мне много не бывает. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> А когда мало - &#8220;догоняюсь&#8221; компьютерным.</p>
<p>Все виды кубков так и не удалось выиграть в PES 2011, но я довольно поздно в прошлом сезоне начал.</p>
<p><img src="http://blog.kmint21.com/wp-content/uploads/2011/10/kmint21-in-pes2011.jpg" alt="KMiNT21 PES2011 stats" /></p>
<p>В этом году японцы сделали еще интересней - интеграцию с FaceBook через приложение myPES (ведение статистики, приватные лиги и соревнования и др.). Ну а я начал играть в мастер-лиге (МЛО). Пока все удачно - прошло всего несколько дней, а я уже оказался в высшем дивизионе.</p>
<p>На второй день после покупки лицензии (когда смог оторваться) сразу обновил свою программу (бот), которая методом распознавания образов (а точнее, просто сравнения некоторых областей экрана с заранее &#8220;заскриншотенными&#8221;) умеет делать такие простые вещи, как запуск матча в режиме тренера, переподключаться при потере связи, отслеживать текущий счет матча и посылать команды смены тактики в зависимости от ситуации на поле. Это все нужно чтобы в режиме мастер-лиги подзаработать немного на игроков. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Я просто запускаю программу на ночь, а утром наблюдаю результат.</p>
<p>Сегодня моя команда в рейтинге силы команд - 179 из 5370.  В рейтинге всех активов - 156-е место из 5350.</p>
<p>Но вот вопрос читеров Konami в новом сезоне так и не решила (есть возможность безнаказанно вырубить проигранный матч, иногда даже с технической победой), а снова вручную их протоколировать не хочется. Потому, возможно, попробую поковыряться с библиотеками распознавания символов (например, Tesseract) для того, чтобы прямо с экрана перед началом матча фиксировать оппонента (и сигнализировать, если он уже был в &#8220;черном списке&#8221;). Но это уже другая история&#8230;</p>
<p>В общем, новый футбольный сезон открыт! <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=cqHiHWyEdwY:Lrh43ui248s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=cqHiHWyEdwY:Lrh43ui248s:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=cqHiHWyEdwY:Lrh43ui248s:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2011/10/25/pes-2011-2012/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Теперь я сертифицированный дайвер :)</title>
		<link>http://blog.kmint21.com/2011/08/19/diving-padi-owd/</link>
		<comments>http://blog.kmint21.com/2011/08/19/diving-padi-owd/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 09:44:03 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2011/08/19/diving-padi-owd/</guid>
		<description><![CDATA[Мое обучение дайвингу вышло несколько растянутым во времени, но, наконец, я получил пластиковую карту-сертификат PADI OWD (Open Water Diver). Программа обучения состоит из теории (со сдачей экзамена) и отработкой навыков в бассейне и затем &#8220;на открытой воде&#8221; - я погружался в Днепре.

В заключительном погружении мы были на глубине около метров 12 , или немного больше. [...]]]></description>
			<content:encoded><![CDATA[<p>Мое обучение дайвингу вышло несколько растянутым во времени, но, наконец, я получил пластиковую карту-сертификат <a href="http://blog.kmint21.com/statdir/stat.php?rurl=http://www.padi.com/padi/ru/" target="_blank">PADI</a> OWD (Open Water Diver). Программа обучения состоит из теории (со сдачей экзамена) и отработкой навыков в бассейне и затем &#8220;на открытой воде&#8221; - я погружался в Днепре.</p>
<p><img src="http://blog.kmint21.com/wp-content/uploads/2011/08/padi-owd.jpg" alt="PADI OWD" /></p>
<p>В заключительном погружении мы были на глубине около метров 12 , или немного больше. Солнечный свет туда уже почти не доходил (прозрачность воды в Днепре не позволяет), потому путь освещали подводными фонарями.</p>
<p>На такой глубине удалось найти несколько крупных рыб. Засекли здорового сомика и леща.  А небольшого карася удалось даже схватить - он совсем не был готов ко встречи с человеком на такой глубине. Секунды на две аккуратно взял его рукой, после чего он решил-таки отплыть сантиметров на 10, а я повторил процедуру еще разок. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Не буду много расписывать про обучение, лучше скажу для чего это все нужно&#8230;</p>
<p>PADI - самая большая международная организация, занимающаяся обучением подводному плаванию. Ее сертификаты принимаются во всех дайв-центрах мира. Потому, если вы хотите пройти обучение - лучше всего найти инструктора PADI в своем городе.</p>
<p>Обучение будет или индивидуальное (как у меня), или в небольшой группе. Стоимость кура PADI Open Water Diver - около 300 евро. Максимальная разрешенная глубина погружений составит 18 метров. Если хочется больше - надо тогда будет еще пройти курс Advanced Open Water Diver (до 30 метров).</p>
<p>Если вы не уверены стоит ли начинать обучение, не знаете понравится ли вам дайвинг - есть возможность организации ознакомительных погружений. В общем, лучше 1 раз увидеть, чем сто раз услышать. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> P.S. Мир больше чем кажется.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=GHoqPctiQ4I:icZnr7iM4_4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=GHoqPctiQ4I:icZnr7iM4_4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=GHoqPctiQ4I:icZnr7iM4_4:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2011/08/19/diving-padi-owd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Биржа Advego - 12 человек в блек-лист за 2 дня</title>
		<link>http://blog.kmint21.com/2011/07/01/advego/</link>
		<comments>http://blog.kmint21.com/2011/07/01/advego/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 03:11:12 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2011/07/01/advego/</guid>
		<description><![CDATA[Полным провалом закончилась моя попытка найти дешевых переводчиков на бирже Адвего.ру.  Все 5 проектов пришлось остановить, так как сил моих больше не осталось.
Пытался заказать переводы 1 статьи на разные языки - испанский, немецкий, французский, итальянский и португальский. Цель - увеличить количество контента на одном сайте путем размещения переводов на другие языки.
Практически все результаты были [...]]]></description>
			<content:encoded><![CDATA[<p>Полным провалом закончилась моя попытка найти дешевых переводчиков на бирже <a target="_blank" href="/statdir/stat.php?rurl=http://bit.ly/lOCIqW">Адвего.ру</a>. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Все 5 проектов пришлось остановить, так как сил моих больше не осталось.</p>
<p>Пытался заказать переводы 1 статьи на разные языки - испанский, немецкий, французский, итальянский и португальский. Цель - увеличить количество контента на одном сайте путем размещения переводов на другие языки.</p>
<p>Практически все результаты были - копипаст машинного перевода Гуглом (translate.google.com). И еще несколько работ были менее очевидными. Если бы не моя бдительность, то выкинул бы деньги непонятно за что. Но я не поленился провести небольшой анализ адекватности перевода.</p>
<p>Я брал несколько ключевых мест (слов/преложений) и прогонял через авто-переводчики в разные стороны (и через разные сервисы). А закреплял выводы поиском некоторых комбинаций ключевых слов в google. Когда обнаруживал, что перевод был дословный, а смысл полностью коверкался - в очередной раз расстраивался&#8230; <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>В общем, за переводами я туда ни ногой. А деньги на балансе потрачу на заказ статей на русском языке для новых сайтов.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=__cIMr5Z7v4:6NkJeqJa58Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=__cIMr5Z7v4:6NkJeqJa58Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=__cIMr5Z7v4:6NkJeqJa58Y:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2011/07/01/advego/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Свой покерный клуб в Сети</title>
		<link>http://blog.kmint21.com/2011/06/29/zp-poker-online/</link>
		<comments>http://blog.kmint21.com/2011/06/29/zp-poker-online/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 07:50:44 +0000</pubDate>
		<dc:creator>KMiNT21</dc:creator>
		
		<category><![CDATA[Обо всем]]></category>

		<guid isPermaLink="false">http://blog.kmint21.com/2011/06/29/zp-poker-online/</guid>
		<description><![CDATA[Когда-то в 2009 году я научился играть в безлимитный техасский холдем и ненадолго на него подсел.  И книжки от мировых профи прочитал, и видео-обучалок насмотрелся тогда, в общем, плотненько так&#8230;
А в этом году снова пришлось вспоминать как в него грамотно играть - сделал для нашей сети покерный клуб (HomeGames на PokerStars). Начали играть 2-3 [...]]]></description>
			<content:encoded><![CDATA[<p>Когда-то в 2009 году я научился играть в <a href="http://blog.kmint21.com/2009/08/12/texas-holdem-poker/">безлимитный техасский холдем</a> и ненадолго на него подсел. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> И книжки от мировых профи прочитал, и видео-обучалок насмотрелся тогда, в общем, плотненько так&#8230;</p>
<p>А в этом году снова пришлось вспоминать как в него грамотно играть - сделал для нашей сети покерный клуб (HomeGames на PokerStars). Начали играть 2-3 раза в неделю такие себе &#8220;междусобойчики&#8221;. Появился азарт. <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote><p><em>Создать свой покерный клуб бесплатно можно на PokerStars.com. Максимальное число участников клуба - 100 человек.</em></p></blockquote>
<p>Итак, первый &#8220;тестовый сезон&#8221; закончен (~ 3 месяца), результаты успел зафиксировать скриншотом, так как они, почему-то, обнулились раньше ожидаемого времени.</p>
<p>ТОП 20:</p>
<p><img alt="netpoint poker club results" src="http://blog.kmint21.com/wp-content/uploads/2011/06/poker-club-netpoint-standing.gif" /></p>
<p>Более полная таблица:</p>
<p><a href="http://blog.kmint21.com/wp-content/uploads/2011/06/poker-club-netpoint-standing-all.gif"><br />
<img alt="netpoint poker club seson 1" src="http://blog.kmint21.com/wp-content/uploads/2011/06/poker-club-netpoint-standing-all.thumbnail.gif" /><br />
</a></p>
<p>Надо будет теперь придумать какой-то призовой фонд, чтоб веселей игралось.</p>
<p>Всех запорожцев приглашаю вступать в наши ряды! <img src='http://blog.kmint21.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Зарегистрироваться можно по ссылке <a target="_blank" href="http://www.setka.zp.ua/poker">www.setka.zp.ua/poker</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kmint21?a=bi1FzalOXLc:30u78VLsFWA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kmint21?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kmint21?a=bi1FzalOXLc:30u78VLsFWA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kmint21?i=bi1FzalOXLc:30u78VLsFWA:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.kmint21.com/2011/06/29/zp-poker-online/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

