<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Алексей Пахунов</title>
	
	<link>http://blog.not-a-kernel-guy.com</link>
	<description>... также известный как "Not a kernel guy"</description>
	<lastBuildDate>Wed, 10 Mar 2010 17:18:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/not-a-kernel-guy" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="not-a-kernel-guy" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bloglines.com/sub/http://feeds.feedburner.com/not-a-kernel-guy" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fnot-a-kernel-guy" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><item>
		<title>Кризис – всё!</title>
		<link>http://blog.not-a-kernel-guy.com/2010/03/10/797</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/03/10/797#comments</comments>
		<pubDate>Wed, 10 Mar 2010 17:18:24 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[default]]></category>
		<category><![CDATA[Всякая всячина]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=797</guid>
		<description><![CDATA[На офисной кухне висит листок, озаглавленный «MS Mortgage» &#8211; в смысле жилищные кредиты для работников Microsoft. Все отрывные листочки с номером телефона оторваны. Не иначе как кризис закончился.  
]]></description>
			<content:encoded><![CDATA[<p>На офисной кухне висит листок, озаглавленный «MS Mortgage» &#8211; в смысле жилищные кредиты для работников Microsoft. Все отрывные листочки с номером телефона оторваны. Не иначе как кризис закончился. <img src='http://blog.not-a-kernel-guy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=bhDFTg0HgM0:cxXZ6WmlRkU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=bhDFTg0HgM0:cxXZ6WmlRkU:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/bhDFTg0HgM0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/03/10/797/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>О завышенных ожиданиях и суровой реальности, их разбивающей.</title>
		<link>http://blog.not-a-kernel-guy.com/2010/03/08/793</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/03/08/793#comments</comments>
		<pubDate>Tue, 09 Mar 2010 07:58:35 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[default]]></category>
		<category><![CDATA[Странное]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=793</guid>
		<description><![CDATA[Рассказываю со слов жены. Происходит нечто странное. Уже трое бывших (или шапочных) знакомых просили привезти им электронику из Штатов. Бывших – это, например, подружка из пионерского детства, встреченная в Артеке, переписка с которой заглохла лет 12 назад, если не больше. Проходит это по одному сценарию – человек объявляется на Одноклассниках, заводит заговор, пятое-десятое, а потом, [...]]]></description>
			<content:encoded><![CDATA[<p>Рассказываю со слов жены. Происходит нечто странное. Уже трое бывших (или шапочных) знакомых просили привезти им электронику из Штатов. Бывших – это, например, подружка из пионерского детства, встреченная в Артеке, переписка с которой заглохла лет 12 назад, если не больше. Проходит это по одному сценарию – человек объявляется на Одноклассниках, заводит заговор, пятое-десятое, а потом, &#8211; «а ты можешь привезти мне ноутбук/фотоаппарат/цветочек аленький?». «У вас там сильно дешевле получается, а я тебе деньги отдам, когда привезешь».</p>
<p>Нет, ну серьезно. Одно дело уважить просьбу давнего друга. В конце концов, зачем вообще нужны друзья, если их не баловать иногда? <img src='http://blog.not-a-kernel-guy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  И то возникают вопросы, как впихнуть шмат высокотехнологичного пластика в чемодан и не забыть любимые трусы в горошек. А тут я и не знаю что ответить. Люди, вы вообще понимаете, о чем вы просите?</p>
<p>Полет из Сиэтла в Москву/Киев – это 15-17 часов лету и минимум одна пересадка. Это если билеты хорошие. Если вам нужно не в Москву/Киев, то прибавьте еще несколько часов и геморрой с получением багажа, пересадкой в другой терминал/аэропорт. Или поезд (мой случай). Уже после этого чемоданы хочется выбросить и никогда больше не видеть.</p>
<p>Теперь вспомним, что на руках есть еще и ребенок. Или два. Кто с детьми не ездил, тот не поймет. Хотя мне еще предстоит первая поездка с двумя сорванцами. Заранее мысленно содрогаюсь. Некоторые вообще едут в одиночку с двумя. Героические, бесстрашные люди. Хотя может быть это не так уж и страшно. Тем не менее, багаж не становится от этого более любимым.</p>
<p>Далее – таможня. В Москве/Киеве это уже не проблема, а вот в Чопе еще не так давно докапывались до количества мобильников на пассажирскую душу, не иначе как с целью убедить особо сговорчивых поделиться дензнаками. Методы борьбы с ними известны, но вы думаете, что кому-то хочется общаться с этими милыми людьми? Я уже не говорю о прочих мелочах, вроде заботы о сохранности посылки, потерянном багаже и прочих прелестях, ожидающих путешественника.</p>
<p>Ну и как вы думаете, оно мне надо?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=kmlyNJrqVhs:Z7bzWykZVg0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=kmlyNJrqVhs:Z7bzWykZVg0:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/kmlyNJrqVhs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/03/08/793/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Я уже вся заждалась, измаялась и даже немного всплакнула.</title>
		<link>http://blog.not-a-kernel-guy.com/2010/02/15/783</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/02/15/783#comments</comments>
		<pubDate>Mon, 15 Feb 2010 19:19:15 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[itblogs]]></category>
		<category><![CDATA[Ошибки]]></category>
		<category><![CDATA[Программирование]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=783</guid>
		<description><![CDATA[Не так давно попалась в руки одна ошибка. Проявлялась она в том, что некое приложение, общающееся с коллегой через TCP/IP соединение, жаловалось на то, что пересылка пакетов по сети занимает около получаса, и что, вообще, заставлять девушку ждать более 300 миллисекунд – неприлично. Впрочем, судя по тому, что приложение работало как ни в чем не [...]]]></description>
			<content:encoded><![CDATA[<p>Не так давно попалась в руки одна ошибка. Проявлялась она в том, что некое приложение, общающееся с коллегой через TCP/IP соединение, жаловалось на то, что пересылка пакетов по сети занимает около получаса, и что, вообще, заставлять девушку ждать более 300 миллисекунд – неприлично. Впрочем, судя по тому, что приложение работало как ни в чем не бывало, &#8211; замечание про полчаса ожидания было легким преувеличением. Для полноты картины добавлю, что то приложение было в процессе переноса на другую платформу с целью «чиста позапускать» (и посмотреть, как оно там работает).</p>
<p>Кусок кода, выводящий сообщение нашелся быстро. Однако на код, вычисляющий задержку, пришлось  немного помедитировать. Как следует помедитировав отладчиком, удалось выделить алгоритм вычисления задержки, который выглядел примерно вот так:</p>
<ol>
<li>Клиент посылает текущее время вместе с пакетом:
<pre><code class="cpp">message-&gt;timestamp = (DWORD)<a href="http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx">QueryPerformanceCounter()</a>;
send(message);
</code></pre>
</li>
<li>Сервер прибавляет свое время при приеме пакета и отнимает  &#8211; при посылке:
<pre><code class="cpp">message-&gt;timestamp += (DWORD)<a href="http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx">QueryPerformanceCounter()</a>;
…
message-&gt;timestamp -= (DWORD)<a href="http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx">QueryPerformanceCounter()</a>;
send(message);</code></pre>
</li>
<li>Клиент сравнивает текущее время с полученным в пакете:
<pre><code class="cpp">DWORD delta = (DWORD)<a href="http://msdn.microsoft.com/en-us/library/ms644904%28VS.85%29.aspx">QueryPerformanceCounter()</a> - message-&gt;timestamp;
double latency = (double)delta / <a href="http://msdn.microsoft.com/en-us/library/ms644905%28VS.85%29.aspx">QueryPerformanceFrequency()</a>;</code></pre>
</li>
</ol>
<p>Фактически клиент меряет время, прошедшее между отправкой и приемом пакета, за вычетом времени на обработку пакета сервером. Трюк с использованием младших 4-х байт счетчика хотя и не очень красив, но работает при условии что, один DWORD покрывает интервал заведомо больший, чем максимальная задержка пакета.</p>
<p>Причина ошибки оказалась в том, что частота таймера высокого разрешения оказалась различной на порядки на клиенте и сервере. Допущение, что все машины используют одинаковую частоту таймера высокого разрешения было верным до тех пор, пока приложение не попало в сильно отличное от стандартного окружение.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=OpCwm94LwGo:ZA9O7-qYSSc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=OpCwm94LwGo:ZA9O7-qYSSc:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/OpCwm94LwGo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/02/15/783/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Где-то здесь должна быть лопата.</title>
		<link>http://blog.not-a-kernel-guy.com/2010/02/10/774</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/02/10/774#comments</comments>
		<pubDate>Thu, 11 Feb 2010 05:48:58 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[default]]></category>
		<category><![CDATA[Всякая всячина]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=774</guid>
		<description><![CDATA[Сегодняшняя картинка на Wuffmorgenthaler порадовала.

Подпись к картинке написана на датском (Update: уже переписали по-английски): «у Ноя были проблемы с полноценным ночным сном». Моего уровня датского как раз хватает на чтение таких простых предложений. Однако почему именно датский?
И вот что интересно. Все комментаторы, не владеющие датским, как один восторгаются, что картинка не требует перевода. А те, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wulffmorgenthaler.com/strip.aspx?id=3d00b850-f0d7-439e-b58c-eef8aa206a75&amp;utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Wulffmorgenthaler+%28wulffmorgenthaler+comic+strip%29&amp;utm_content=Google+Reader">Сегодняшняя картинка на Wuffmorgenthaler</a> порадовала.</p>
<p><img alt="" src="http://www.wulffmorgenthaler.com/striphandler.ashx?stripid=3d00b850-f0d7-439e-b58c-eef8aa206a75" title="Wuffmorgenthaler, Feb 11th, 2010" class="aligncenter" width="666" height="230" /></p>
<p>Подпись к картинке написана на датском (<strong>Update</strong>: уже переписали по-английски): «у Ноя были проблемы с полноценным ночным сном». Моего уровня датского как раз хватает на чтение таких простых предложений. Однако почему именно датский?</p>
<p>И вот что интересно. Все комментаторы, не владеющие датским, как один восторгаются, что картинка не требует перевода. А те, кто владеют (датчане, шведы, норвежцы), как один гадают, почему не по-английски и на всякий случай переводят для остальных. Причем я явно попадаю в компанию к скандинавам, судя по моему восприятию картинки. Хм.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=eB-6UmHD-4k:Cmet6jgSq3U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=eB-6UmHD-4k:Cmet6jgSq3U:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/eB-6UmHD-4k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/02/10/774/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Про яблоки.</title>
		<link>http://blog.not-a-kernel-guy.com/2010/02/02/768</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/02/02/768#comments</comments>
		<pubDate>Tue, 02 Feb 2010 17:48:14 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[itblogs]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=768</guid>
		<description><![CDATA[Прелесть какая:
Фирмы непродвинутые пытаются создавать девайсы для какой-то заранее определённой цели. Как правило, они пытаются угадать «желания потребителей». Получается это у них по-разному, но, как правило, плохо. Большая часть функций, встроенных в их девайсы, обычно бывает невостребована, пользователи капризничают и плюются, на одну кисленькую удачу приходится десять неудач и так далее.
Фирма Аплы не такова. Она [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://krylov.livejournal.com/1977173.html">Прелесть какая</a>:</p>
<blockquote><p>Фирмы непродвинутые пытаются создавать девайсы для какой-то заранее определённой цели. Как правило, они пытаются угадать «желания потребителей». Получается это у них по-разному, но, как правило, плохо. Большая часть функций, встроенных в их девайсы, обычно бывает невостребована, пользователи капризничают и плюются, на одну кисленькую удачу приходится десять неудач и так далее.</p>
<p>Фирма Аплы не такова. Она сначала создаёт устройство, продаёт его, а потом потребители сами находят ему какое-нибудь употребление.</p>
<p>То есть. Сначала делается девайс, обладающий тремя свойствами:<br />
а) он чрезвычайно красивый, гладкий и удобонажимаемый, что вызывает желание его немедля приобрести;<br />
б) он достаточно дорогой, чтобы его было жалко сразу выкинуть:<br />
в) в нём перемешаны разные функции всяких электронных устройств, можно в случайном порядке.</p>
<p>Дальше так. Пользователи видят няшку и покупают – из тех же соображений, из которых покупают котят и кристаллы Сваровски: «ой, красивенькое». Потом выясняется, что купили фигню, но выкинуть её жалко, потому что фигня недешёвая.</p>
<p>Значит что? Значит, нужно НАЙТИ ЕЙ ПРИМЕНЕНИЕ.</p>
<p>Мудрый Стив Джобс знает, что люди не столь глупы, сколь ленивы. Думать-то они умеют, просто не любят. Но если уж начинают думать, они, глядишь, и колесо, и порох изобретут, и до рыбной запеканки додумаются. А уж применение красивой удобной штучке – тем более отыщут. Чай, не бином.<br />
&#8230;</p>
<p>И мы дождёмся, что какая-нибудь знаменитая контора выпустит хрустальный нагревательный штопор с рентгеновским аппаратом, компасом и трещоткой, управляемый блютуфно. Цена – бачей двести. Если охреневшим пользователям втюхать миллион таких приборов, то через какое-то время откроется &#8211; жить без такой штуки ну просто вот никак невозможно, только трещотку надо заменить на колокольчик и вкрутить в него фотик с тремя объективами.</p></blockquote>
<p>Источник: <a href="http://krylov.livejournal.com/1977173.html">http://krylov.livejournal.com/1977173.html</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=tEonZRbKQDQ:2MXlkQNMMc4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=tEonZRbKQDQ:2MXlkQNMMc4:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/tEonZRbKQDQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/02/02/768/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Не влезай – убьёт!</title>
		<link>http://blog.not-a-kernel-guy.com/2010/01/20/764</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/01/20/764#comments</comments>
		<pubDate>Wed, 20 Jan 2010 16:42:34 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[default]]></category>
		<category><![CDATA[Всякая всячина]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=764</guid>
		<description><![CDATA[Вот такой симпотный монстр живет в здешних распределительных коробках. Не чета черепу с костями.
Не влезай - убьёт!
]]></description>
			<content:encoded><![CDATA[<p>Вот такой симпотный монстр живет в здешних распределительных коробках. Не чета черепу с костями.</p>
<div id="attachment_765" class="wp-caption aligncenter" style="width: 291px"><a href="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/hazardous_voltage_warning.jpg"><img src="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/hazardous_voltage_warning.jpg" alt="Не влезай - убьёт!" title="hazardous_voltage_warning" width="281" height="518" class="size-full wp-image-765" /></a><p class="wp-caption-text">Не влезай - убьёт!</p></div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=Fp4G-xHF6CM:YbkrHPophJs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=Fp4G-xHF6CM:YbkrHPophJs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/Fp4G-xHF6CM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/01/20/764/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Поверхностное сравнение архитектуры консоли в Windows и Unix.</title>
		<link>http://blog.not-a-kernel-guy.com/2010/01/10/753</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/01/10/753#comments</comments>
		<pubDate>Mon, 11 Jan 2010 06:34:40 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[itblogs]]></category>
		<category><![CDATA[Консоль]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=753</guid>
		<description><![CDATA[Довольно интересно сравнить, как устроена консоль в Windows и Unix. Вот упрощенная схема как это работает в Unix:
Консоль в Unix
Посимвольный ввод и вывод через stdin/stdout – единственный канал общения с консолью (терминалом), доступный приложению. Терминалом, при этом, может быть все что угодно – файл на диске, виртуальный терминал в X Window, труба (pipe) из другого [...]]]></description>
			<content:encoded><![CDATA[<p>Довольно интересно сравнить, как устроена консоль в Windows и Unix. Вот упрощенная схема как это работает в Unix:</p>
<div id="attachment_754" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/unix_console.png"><img src="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/unix_console.png" alt="Консоль в Unix" title="unix_console" width="550" height="378" class="size-full wp-image-754" /></a><p class="wp-caption-text">Консоль в Unix</p></div>
<p>Посимвольный ввод и вывод через stdin/stdout – единственный канал общения с консолью (терминалом), доступный приложению. Терминалом, при этом, может быть все что угодно – файл на диске, виртуальный терминал в X Window, труба (pipe) из другого приложения и т.д. Между терминалом и приложением передается текст. Нажатия нетекстовых клавиш (клавиш управления курсором, функциональных клавиш и т.п.) транслируются терминалом в управляющие последовательности/ESC коды (см. <a href="http://www.ecma-international.org/publications/standards/Ecma-035.htm">Ecma-35</a>). С помощью аналогичных управляющих последовательностей приложение может посылать терминалу команды вроде «перейти на следующую строку».</p>
<p>Собственно говоря, полностью корректная отработка ESC кодов, &#8211; это весьма сложная задача ввиду сильнейшего разнообразия различных видов терминалов. Библиотека ncurses, к примеру, содержит описания более чем полутора тысяч разных терминальных конфигураций. Неразберихи добавляет и необходимость согласования кодировок текста, которым обмениваются терминал и приложение. К счастью, и разнообразие терминалов, и разнообразие кодировок постепенно сходит на нет – «железные» терминалы почти вымерли; Unicode шагает по планете.</p>
<p>Архитектура консольной подсистемы в Windows во многом отличается от Unix:</p>
<div id="attachment_755" class="wp-caption aligncenter" style="width: 560px"><a href="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/windows_console.png"><img src="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/windows_console.png" alt="Консоль в Windows" title="windows_console" width="550" height="396" class="size-full wp-image-755" /></a><p class="wp-caption-text">Консоль в Windows</p></div>
<p>Вместо символьного ввода-вывода, приложение общается с консолью через вызовы удаленных функций (RPC). Клавиатурный ввод передается в виде последовательности нажатий клавиш, а не в виде последовательности символов, полученной в результате нажатия этих клавиш. В результате в Windows приложение может, например, отличить Ctrl+Shift+Left от Shift+Left. С другой стороны, в Windows приложение обязано знать тип и раскладку клавиатуры, выбранные в терминале, что в случае удаленного терминала превращается в проблему.</p>
<p>Для приложений, которым не интересны подробности нажатий клавиш, нажатия клавиш транслируется в традиционный символьный ввод-вывод. К примеру, <a href="http://msdn.microsoft.com/en-us/library/ms684958%28VS.85%29.aspx">ReadConsole</a> глубоко внутри вызывает <a href="http://msdn.microsoft.com/en-us/library/ms684961%28VS.85%29.aspx">ReadConsoleInput</a>. На Unix приходится решать обратную задачу – из потока символов выделять нажатия клавиш. </p>
<p>Стандартный ввод-вывод отделен от собственно консоли. В результате, перенаправление стандартного ввода-вывода не перехватывает весь консольный ввод-вывод. Попробуйте на досуге перенаправить вывод Far Manager в файл. А затем посмотрите, что получится если сделать то же самое с Midnight Commander.</p>
<p>Продолжение, надеюсь, следует…</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=eq46bnLqZSw:4wSTDRmqRTs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=eq46bnLqZSw:4wSTDRmqRTs:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/eq46bnLqZSw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/01/10/753/feed</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Как скрестить ужа…</title>
		<link>http://blog.not-a-kernel-guy.com/2010/01/09/749</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/01/09/749#comments</comments>
		<pubDate>Sun, 10 Jan 2010 05:59:06 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[default]]></category>
		<category><![CDATA[Всякая всячина]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=749</guid>
		<description><![CDATA[Интересное наблюдение. Единственное животное, которое можно скрестить с ужом – это ёж. А вот слона можно скрестить с чем угодно.  
]]></description>
			<content:encoded><![CDATA[<p>Интересное наблюдение. Единственное животное, которое можно скрестить с ужом – <a href="http://www.google.com/#hl=en&amp;q=%D0%9A%D0%B0%D0%BA+%D1%81%D0%BA%D1%80%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C+%D1%83%D0%B6%D0%B0&amp;aq=f&amp;aqi=&amp;oq=&amp;fp=292ac4760832f3c4">это ёж</a>. А вот слона можно скрестить с <a href="http://www.google.com/#hl=en&amp;q=%D0%9A%D0%B0%D0%BA+%D1%81%D0%BA%D1%80%D0%B5%D1%81%D1%82%D0%B8%D1%82%D1%8C+%D1%81%D0%BB%D0%BE%D0%BD%D0%B0&amp;aq=f&amp;aqi=&amp;oq=&amp;fp=292ac4760832f3c4">чем угодно</a>. <img src='http://blog.not-a-kernel-guy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=XlxVH9dakvo:WNHm30S4jBg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=XlxVH9dakvo:WNHm30S4jBg:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/XlxVH9dakvo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/01/09/749/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Символы для release сборки.</title>
		<link>http://blog.not-a-kernel-guy.com/2010/01/05/744</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/01/05/744#comments</comments>
		<pubDate>Wed, 06 Jan 2010 07:01:43 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[itblogs]]></category>
		<category><![CDATA[Отладка]]></category>
		<category><![CDATA[Программирование]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=744</guid>
		<description><![CDATA[В очередной раз столкнулся с мифом, что, мол, release сборку невозможно отлаживать, так как символов нет. Значит так! Американцы на Луне были! Тьфу ты. В смысле, символы в release сборке включать: а) можно, б) нужно и в) полезно. Генерация отладочной информации не влияет на оптимизацию кода. Хотите, проверьте сами – сравните ассемблерные листинги с генерацией [...]]]></description>
			<content:encoded><![CDATA[<p>В очередной раз столкнулся с мифом, что, мол, release сборку невозможно отлаживать, так как символов нет. Значит так! <del datetime="2010-01-06T07:01:32+00:00">Американцы на Луне были!</del> Тьфу ты. В смысле, символы в release сборке включать: а) можно, б) нужно и в) полезно. Генерация отладочной информации не влияет на оптимизацию кода. Хотите, проверьте сами – сравните ассемблерные листинги с генерацией символов и без. Более того, случаи, когда это не так, однозначно трактуются как ошибки, которые можно смело <a href="http://blog.not-a-kernel-guy.com/2007/04/27/177">отправлять в Microsoft</a>. Мне, кстати, и самому было бы интересно посмотреть на тест-кейс воспроизводящий подобную ошибку.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=8VnfnIvzo-g:ydjITOJmI5o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=8VnfnIvzo-g:ydjITOJmI5o:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/8VnfnIvzo-g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/01/05/744/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>По просьбам трудящихся… ;-)</title>
		<link>http://blog.not-a-kernel-guy.com/2010/01/05/736</link>
		<comments>http://blog.not-a-kernel-guy.com/2010/01/05/736#comments</comments>
		<pubDate>Wed, 06 Jan 2010 06:34:39 +0000</pubDate>
		<author>alexeypa@gmail.com (Алексей Пахунов)</author>
				<category><![CDATA[default]]></category>
		<category><![CDATA[Всякая всячина]]></category>

		<guid isPermaLink="false">http://blog.not-a-kernel-guy.com/?p=736</guid>
		<description><![CDATA[
shaf :
Тогда запости вид из окна  

Не из окна, правда, с крыльца, но вид (по клику открывается в полном размере):
Вид с крыльца
  
PS. Никак не могу попать домой днем&#8230;
]]></description>
			<content:encoded><![CDATA[<blockquote cite="#commentbody-15093"><p>
<strong><a href="#comment-15093">shaf</a> :</strong></p>
<p>Тогда запости вид из окна <img src="http://blog.not-a-kernel-guy.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"/> </p>
</blockquote>
<p>Не из окна, правда, с крыльца, но вид (по клику открывается в полном размере):</p>
<div id="attachment_737" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/view_from_the_porch.jpg"><img src="http://blog.not-a-kernel-guy.com/wp-content/uploads/2010/01/view_from_the_porch-300x103.jpg" alt="Вид с крыльца" title="view_from_the_porch" width="300" height="103" class="size-medium wp-image-737" /></a><p class="wp-caption-text">Вид с крыльца</p></div>
<p> <img src='http://blog.not-a-kernel-guy.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>PS. Никак не могу попать домой днем&#8230;</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/not-a-kernel-guy?a=HaxDKIZCEUc:3W8oCFnyerY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/not-a-kernel-guy?i=HaxDKIZCEUc:3W8oCFnyerY:D7DqB2pKExk" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/not-a-kernel-guy/~4/HaxDKIZCEUc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.not-a-kernel-guy.com/2010/01/05/736/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
