<?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>blinnov's blog</title>
	<atom:link href="http://www.blinnov.com/feed/en+ru/" rel="self" type="application/rss+xml" />
	<link>http://www.blinnov.com</link>
	<description>another brilliant mind poisoned by c++</description>
	<lastBuildDate>Sat, 05 May 2012 13:39:05 +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>КулинарноЭ</title>
		<link>http://www.blinnov.com/2012/05/05/%d0%9a%d1%83%d0%bb%d0%b8%d0%bd%d0%b0%d1%80%d0%bd%d0%be%d0%ad-2/ru/</link>
		<comments>http://www.blinnov.com/2012/05/05/%d0%9a%d1%83%d0%bb%d0%b8%d0%bd%d0%b0%d1%80%d0%bd%d0%be%d0%ad-2/ru/#comments</comments>
		<pubDate>Sat, 05 May 2012 13:39:05 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1588</guid>
		<description><![CDATA[Приготовил сегодня чипсы по-Хестоновски. Как положено, triple cooked.
Теперь ведь ни в фаш-н-чапс не сходить, ни в макдак. Такими темпами в ресторан можно будет идти только разве что за дефлопе. С семечками кациуса.
]]></description>
			<content:encoded><![CDATA[<p>Приготовил сегодня чипсы по-Хестоновски. Как положено, triple cooked.</p>
<p>Теперь ведь ни в фаш-н-чапс не сходить, ни в макдак. Такими темпами в ресторан можно будет идти только разве что за дефлопе. С семечками кациуса.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/05/05/%d0%9a%d1%83%d0%bb%d0%b8%d0%bd%d0%b0%d1%80%d0%bd%d0%be%d0%ad-2/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Просьба к Дедушке Морозу</title>
		<link>http://www.blinnov.com/2012/04/28/%d0%9f%d1%80%d0%be%d1%81%d1%8c%d0%b1%d0%b0-%d0%ba-%d0%94%d0%b5%d0%b4%d1%83%d1%88%d0%ba%d0%b5-%d0%9c%d0%be%d1%80%d0%be%d0%b7%d1%83/ru/</link>
		<comments>http://www.blinnov.com/2012/04/28/%d0%9f%d1%80%d0%be%d1%81%d1%8c%d0%b1%d0%b0-%d0%ba-%d0%94%d0%b5%d0%b4%d1%83%d1%88%d0%ba%d0%b5-%d0%9c%d0%be%d1%80%d0%be%d0%b7%d1%83/ru/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 14:20:55 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1583</guid>
		<description><![CDATA[До следующего Н.Г. осталось чуть больше полугода, так что самое время отправлять просьбы, если хотите, чтобы они вовремя дошли.
Дедушка Мороз, пожалуйста, сделай так, чтобы все копиразды сдохли нахрен к чертям собачьим как можно быстрее!
Только что вставил второй диск из комплекта Queen &#8220;Greatest video hits 1&#8243;. Абсолютно лицензионный, купленный лично мной в JB в Сиднее за [...]]]></description>
			<content:encoded><![CDATA[<p>До следующего Н.Г. осталось чуть больше полугода, так что самое время отправлять просьбы, если хотите, чтобы они вовремя дошли.</p>
<p>Дедушка Мороз, пожалуйста, сделай так, чтобы все копиразды сдохли нахрен к чертям собачьим как можно быстрее!</p>
<p>Только что вставил второй диск из комплекта Queen &#8220;Greatest video hits 1&#8243;. Абсолютно лицензионный, купленный лично мной в JB в Сиднее за кровно заработанные пластиковые. Знаете, что мне эта виндовая падла сказала? Что у меня, падшая женщина, конфликт, падшая женщина, где-то между, падшая женщина, DVD приводом, системой и видеокартой, падшая женщина! И предложила, самка собаки, обновить драйвер видеокарты, на мужской половой орган! И проигрывать диск, самка собаки, отказалась!</p>
<p>И это на полностью лицензионной винде на новом нотебяке с последними драйверами!</p>
<p>Я, в принципе, и не собирался диск смотреть на нотебяке, а всего лишь хотел его скопировать на мой MythTV, ибо в наше время терабайтных жестких дисков жонглирование DVD сродни онанизму. Кроме того, DVD эти, даже все из себя лицензионные новорят то и дело испортиться. Короче, когда я вставил диск, виндовый проигрыватель выскочил автоматически. Выскочил только для того, чтобы сообщить мне всю это ценную информацию.</p>
<p>Для меня не составляет никаких проблем скопировать этот диск прямо на линкус машине. Но суть в том, что все, чего эти коперазды добились, заботясь якобы о моем благе &#8211; это то, что я не могу просмотреть законно купленный диск на своем честно купленном оборудовании. Вы знаете, во всех остальных отраслях человеческой деятельности подобные финты ушами называются мошенничеством и караются длительными тюремными сроками.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/04/28/%d0%9f%d1%80%d0%be%d1%81%d1%8c%d0%b1%d0%b0-%d0%ba-%d0%94%d0%b5%d0%b4%d1%83%d1%88%d0%ba%d0%b5-%d0%9c%d0%be%d1%80%d0%be%d0%b7%d1%83/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Неделя оптимизатора</title>
		<link>http://www.blinnov.com/2012/04/27/%d0%9d%d0%b5%d0%b4%d0%b5%d0%bb%d1%8f-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%82%d0%be%d1%80%d0%b0/ru/</link>
		<comments>http://www.blinnov.com/2012/04/27/%d0%9d%d0%b5%d0%b4%d0%b5%d0%bb%d1%8f-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%82%d0%be%d1%80%d0%b0/ru/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 14:05:12 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Software design]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1579</guid>
		<description><![CDATA[Что-то у меня эта неделя проходит под знаком единства и борьбы с оптимизатором компилятора. То я компилятор чем удивлю, то он меня в ответ.
Рисую шаблонный движок для реализации конечных автоматов (Finite state machine). Такое я уже делал раньше, просто сейчас свистелки с перделками нужны оказались совсем другие. Еще было странное желание, чтобы движок мог компилироваться [...]]]></description>
			<content:encoded><![CDATA[<p>Что-то у меня эта неделя проходит под знаком единства и борьбы с оптимизатором компилятора. То я компилятор чем удивлю, то он меня в ответ.</p>
<p>Рисую шаблонный движок для реализации конечных автоматов (Finite state machine). Такое я уже делал раньше, просто сейчас свистелки с перделками нужны оказались совсем другие. Еще было странное желание, чтобы движок мог компилироваться для AVR, Ардуино то бишь. Забегая вперед скажу, что таки сделал в лучшем виде.</p>
<p>В общем, в одном месте у меня получился такой код</p>
<pre class="brush:cpp">typedef void (*stateHandler)();
stateHandler currentState;

// Irrelevant crap skipped

void SetNewState(stateHandler* _newState)
{
      if (currentState != _newState)
      {
          callOnExitFor(currentState);
          currentState = _newState;
          callOnEnterFor(_newState);
      }
}</pre>
<p>Настоящий код выглядит совсем не так. Потому что на шаблонах. Но суть от этого не меняется, кроме того, тащить в этот псто всю шаблонную магию мне природная скромность не позволяет. Код позволяет определить набор состояний, каждое из которых обслуживается своей функцией и потом совершать переходы из состояния в состояние путем вызова SetNewState. Собственно состояние определяется функцией- обработчиком этого состояния.</p>
<p>SetNewState проверяет, не переходим ли в то же состояние. Для КА подобные переходы вполне легальны, и даже обычны, хотя и не имеют большого смысла. Задача SetNewState, кроме регистрации следующего состояния, заключается еще и в том, чтобы вызвать функцию-эпилог для прошлого состояния и пролог для нового. Соответственно if нужен для того, чтобы не вызывать эпилог и пролог в случае, когда переходим в то же самое состояние.</p>
<p>Как водится, написал юнит-тест. Набор состояний с функциями-обработчиками, таблица переходов, все дела. Поскольку это юнит-тест, все функции-обработчики оказались одинаковыми и внутри просто увеличивали счетчик вызовов да указатель на себя записывали в переменную, которую я потом ассертом проверял:</p>
<pre class="brush:cpp">stateHandler test_lastState;
int test_Counter;

void InitState()
{
    test_lastState = InitState;
    ++test_Counter;
}

void RunState()
{
     test_lastState = RunState;
     ++test_Counter
}</pre>
<p>И так далее. Юнит-тест тривиальнейший, вызываем переход, проверяем, что новое состояние установлено согласно ожидаемому да счетчик вызовов увеличивается правильно.</p>
<p>Потом настала очередь проверить работу обработчиков эпилога и пролога. И вот тут ко мне пришел великий птиц обломинго. При переходе из InitState в RunState ни эпилог, ни пролог не вызывались. По свежему опыту проверил поведение debug сборки и убедился, что чертовщина происходит только в релизе. Было очевидно, что опять что-то соптимизировалось не так и не туда.</p>
<p>Грабли нашлись после взятия всех анализов у оператора if из функции SetNewState. В моем юнит-тесте при переходе из InitState в RunState условие InitState != RunState почему-то всегда вычислялось как false.  Оказалось, что в релизной сборке InitState == RunState. Оптимизатор линкера просто взял и слил две одинаковые функции в одну, поскольку посчитал, что они делают абсолютно одно и то же. Откуда ж ему было знать, болезному, что я ожидал, что указатели на InitState и RunState должны различаться?</p>
<p>В итоге движок КА оказался конкретно так сконфужен. И, поскольку в моем случае вероятность того, что в продакшен коде тоже могут потребоваться обработчики разных состояний с абсолютно одинаковым кодом внутри, очень велика, пришлось искать вариант, на который оптимизация компилятора повлиять бы не смогла. В итоге нашел замечательный со всех сторон способ убрать проверки из рантайма и заставить компилятор их сделать во время компиляции.</p>
<p>Но об этом потом.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/04/27/%d0%9d%d0%b5%d0%b4%d0%b5%d0%bb%d1%8f-%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%82%d0%be%d1%80%d0%b0/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Пятницо, да!</title>
		<link>http://www.blinnov.com/2012/04/20/%d0%9f%d1%8f%d1%82%d0%bd%d0%b8%d1%86%d0%be-%d0%b4%d0%b0/ru/</link>
		<comments>http://www.blinnov.com/2012/04/20/%d0%9f%d1%8f%d1%82%d0%bd%d0%b8%d1%86%d0%be-%d0%b4%d0%b0/ru/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 12:50:08 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1573</guid>
		<description><![CDATA[А я поимел дофига фана на работе.
Сижу, пишу эмулятор сетевого девайса. Даже не девайса, а целой PLC. Хорошо так пишу, натыкаюсь на место, где нужно некий кусок данных зазиповать перед выдачей клиенту. Piece of cake &#8211; качаю zlib1.dll с официального сайта, подключаю, пишу йунит-тесты. Все работает аж фуфайко заворачиваеццо.
А потом дернул меня чОрд собрать йунит-тест [...]]]></description>
			<content:encoded><![CDATA[<p>А я поимел дофига фана на работе.</p>
<p>Сижу, пишу эмулятор сетевого девайса. Даже не девайса, а целой PLC. Хорошо так пишу, натыкаюсь на место, где нужно некий кусок данных зазиповать перед выдачей клиенту. Piece of cake &#8211; качаю zlib1.dll с официального сайта, подключаю, пишу йунит-тесты. Все работает аж фуфайко заворачиваеццо.</p>
<p>А потом дернул меня чОрд собрать йунит-тест в релизе. Впрочем, чего это он меня дернул, я обычно все сразу собираю в релизе, а на дебаг переключаюсь только в крайнем случае, когда без дебаггера никуда. Так что вопрос скорее в том, какого лешего я вообще собирал дебаг версию тестов? Впрочем, это неважно, собираю релиз версию юнит-теста, а оно обламывается. У мну йунит-тесты прогоняются как post-build step, соответственно если юнит-тест обламыается, то и билд фейлится.</p>
<p>На этот раз фейл оказался эпичным. Из тех йунит-тестов, которые проверяли zlib функциональность вылезает хаааароший такой Access violation во всю морду при первом же вызове функции из zlib1.dll Что характерно &#8211; эти же тесты в дебаге отработали как надо.</p>
<p>Дальше чудесатее и странноватее. В своем коде перетряхнул все, что можно, и что нельзя тоже. Проверил и перепроверил все настройки. Потом еще раз. Затем стал отлаживать disassembly. Обнаружил забавную вещь &#8211; вызов zlib функции выглядел как call any_random_address. Запахло расстрелом памяти и прочими heap corruption.</p>
<p>Вынос всего лишнего, в том числе и того, что даже теоретически не могло стрелять по памяти, на картину не повлияло. Debug же сборка продолжала угорать надо мной, выдавая 100% pass безо всяких спецэффектов.</p>
<p>Так бы и не понял, чезанах, если бы не случай.</p>
<p>Препарируя пациента дебаггером в стопицотый раз, обратил внимание, что zlib1.dll отсутствует в списке загруженных модулей. Интересно, что дебаг сборка библиотеку исправно грузила. Релизная же нет &#8211; тестовый экзешник запускался даже на машине, куда ни одна версия zlib1.dll еще не добралась. Запускался и валился по AV.</p>
<p>Ага, сказали суровые сибирские мужики. Никаким late binding и LoadLibrary там и не пахло, экзешник динамически линковал zlib1.dll. Только линковал как-то странно.</p>
<p>В итоге, проблема оказалась в том, что все ссылки на импортированные из dll функции линкер зачем-то заботливо потер. В итоге библиотека оказалась как бы слинкована, но ни одна функция из нее в экзешник не импортировалась. Вместо этого импортированные функции указывали куда придется. Интересно, что отключение оптимизации в линковщике (/OPT:ref) проблему убирало (поэтому и дебаг сборка работала, кстати). Но такой вариант меня не устраивал по вполне понятным причинам и мне пришлось искать альтернативные решения.</p>
<p>К слову, в списках рассылки zlib мне удалось найти пару упоминаний о такой проблеме. Проблема проявлялась как раз на такой же версии, как и у меня. Все сошлись во мнении, что линкер офигевал от чего-то, что попало в .lib файл библиотеки, который кто-то заботливо собрал каким то специальным, только одному ему известным способом.</p>
<p>Короче, проблема решилась самостоятельной сборкой zlib из исходников старым добрым компилятором 2005 студии.</p>
<p>Мораль всего этого такова &#8211; пишите йунит-тесты вообще для всего, @#$%!!!!. Мне страшно представить объем попаболи, если бы этот бабах случился бы в готовом продукте.</p>
<p>И еще один вопрос остается открытым &#8211; КАК?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/04/20/%d0%9f%d1%8f%d1%82%d0%bd%d0%b8%d1%86%d0%be-%d0%b4%d0%b0/ru/feed/ru/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Открытие дня</title>
		<link>http://www.blinnov.com/2012/04/19/%d0%9e%d1%82%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%b4%d0%bd%d1%8f/ru/</link>
		<comments>http://www.blinnov.com/2012/04/19/%d0%9e%d1%82%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%b4%d0%bd%d1%8f/ru/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 06:11:34 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1568</guid>
		<description><![CDATA[Только что с прискорбием узнал, что Build Events в Visual Studio не агрегируются и поэтому не наследуются из Property Sheets. Потомушта это &#8220;simple property, not the aggregate one&#8221; (пруф).
Пичаль.
]]></description>
			<content:encoded><![CDATA[<p>Только что с прискорбием узнал, что Build Events в Visual Studio не агрегируются и поэтому не наследуются из Property Sheets. Потомушта это &#8220;simple property, not the aggregate one&#8221; (<a href="http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/e2557d68-40b4-4488-acbc-6e5493143bf3">пруф</a>).</p>
<p>Пичаль.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/04/19/%d0%9e%d1%82%d0%ba%d1%80%d1%8b%d1%82%d0%b8%d0%b5-%d0%b4%d0%bd%d1%8f/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Danger 5</title>
		<link>http://www.blinnov.com/2012/04/02/danger-5/ru/</link>
		<comments>http://www.blinnov.com/2012/04/02/danger-5/ru/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 13:30:33 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[Australia]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1564</guid>
		<description><![CDATA[Посмотрел случайно серию Danger 5. В титрах проскочило &#8220;Снято в Южной Австралии&#8221;.
Аборигены Южной Австралии, скажите, пожалуйста, у вас там в водопроводную воду никаких полезных веществ не добавляют? А то чуть со смеху не абосралсо.
]]></description>
			<content:encoded><![CDATA[<p>Посмотрел случайно серию <a href="http://www.sbs.com.au/danger5/index.html">Danger 5</a>. В титрах проскочило &#8220;Снято в Южной Австралии&#8221;.</p>
<p>Аборигены Южной Австралии, скажите, пожалуйста, у вас там в водопроводную воду никаких полезных веществ не добавляют? А то чуть со смеху не абосралсо.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/04/02/danger-5/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>РабочеЭ</title>
		<link>http://www.blinnov.com/2012/03/28/%d0%a0%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%ad-2/ru/</link>
		<comments>http://www.blinnov.com/2012/03/28/%d0%a0%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%ad-2/ru/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 11:56:29 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1560</guid>
		<description><![CDATA[Написал юнит-тест.
В последней строчке его короткое слово FAIL().
Ибо нефиг.
]]></description>
			<content:encoded><![CDATA[<p>Написал юнит-тест.</p>
<p>В последней строчке его короткое слово FAIL().</p>
<p>Ибо нефиг.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/03/28/%d0%a0%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%ad-2/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Снова потребительское</title>
		<link>http://www.blinnov.com/2012/03/27/%d0%a1%d0%bd%d0%be%d0%b2%d0%b0-%d0%bf%d0%be%d1%82%d1%80%d0%b5%d0%b1%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%be%d0%b5/ru/</link>
		<comments>http://www.blinnov.com/2012/03/27/%d0%a1%d0%bd%d0%be%d0%b2%d0%b0-%d0%bf%d0%be%d1%82%d1%80%d0%b5%d0%b1%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%be%d0%b5/ru/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 03:22:48 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[Australia]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[tech]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1557</guid>
		<description><![CDATA[Хотел купить себе новый лаптоп. Искал в гуглях, читал всякие информации, обзоры и прочую маркетологическую болтовню
Сейчас один из сайтов выдал контекстную рекламу. Не знаю, связаны ли они с гуглем, или сами догадались, но посоветовали мне нотебяку от Тошибы. Написано, сильно крутой нотебяк для бизнеса, весь из себя i5 и может даже заменть десктоп и всего [...]]]></description>
			<content:encoded><![CDATA[<p>Хотел купить себе новый лаптоп. Искал в гуглях, читал всякие информации, обзоры и прочую маркетологическую болтовню</p>
<p>Сейчас один из сайтов выдал контекстную рекламу. Не знаю, связаны ли они с гуглем, или сами догадались, но посоветовали мне нотебяку от Тошибы. Написано, сильно крутой нотебяк для бизнеса, весь из себя i5 и может даже заменть десктоп и всего за полторы штукабаксов. Читаю дальше спецификации. Оказывается, на крутой бызнес-нотебяк установлена <em>64-битная</em> ось, что есть типа круто. Целых пять строчек спецификаций посвящены подробному описанию того, какой крутой сидиром  в оный нотебяк установлен и как много он, этот сидиром, умеет.</p>
<p>А еще туда установлено целых 2 (два) гигабайта памяи.</p>
<p>Я, конечно, знаю, что мир густо населен идиотами, но иногда все же хочется, чтобы из было поменьше, и чтобы кто-нибудь уже сделал нормальный рабочий лаптоп без этого ненужного сидирома и без дурацких конструкций вроде глянцевого экрана и 64-битной видновс на 2 гигах памяти.</p>
<p>Или я губу сильно раскатал?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/03/27/%d0%a1%d0%bd%d0%be%d0%b2%d0%b0-%d0%bf%d0%be%d1%82%d1%80%d0%b5%d0%b1%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%be%d0%b5/ru/feed/ru/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Гран-При Малайзии</title>
		<link>http://www.blinnov.com/2012/03/25/%d0%93%d1%80%d0%b0%d0%bd-%d0%9f%d1%80%d0%b8-%d0%9c%d0%b0%d0%bb%d0%b0%d0%b9%d0%b7%d0%b8%d0%b8/ru/</link>
		<comments>http://www.blinnov.com/2012/03/25/%d0%93%d1%80%d0%b0%d0%bd-%d0%9f%d1%80%d0%b8-%d0%9c%d0%b0%d0%bb%d0%b0%d0%b9%d0%b7%d0%b8%d0%b8/ru/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 08:56:24 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[Formula-1]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1554</guid>
		<description><![CDATA[Они зажали мороженое для Кими! Сволочи!
]]></description>
			<content:encoded><![CDATA[<p>Они зажали мороженое для Кими! Сволочи!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/03/25/%d0%93%d1%80%d0%b0%d0%bd-%d0%9f%d1%80%d0%b8-%d0%9c%d0%b0%d0%bb%d0%b0%d0%b9%d0%b7%d0%b8%d0%b8/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Законъ спроса и предложения</title>
		<link>http://www.blinnov.com/2012/03/18/%d0%97%d0%b0%d0%ba%d0%be%d0%bd%d1%8a-%d1%81%d0%bf%d1%80%d0%be%d1%81%d0%b0-%d0%b8-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f/ru/</link>
		<comments>http://www.blinnov.com/2012/03/18/%d0%97%d0%b0%d0%ba%d0%be%d0%bd%d1%8a-%d1%81%d0%bf%d1%80%d0%be%d1%81%d0%b0-%d0%b8-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f/ru/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 01:45:19 +0000</pubDate>
		<dc:creator>vital</dc:creator>
				<category><![CDATA[Australia]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.blinnov.com/?p=1551</guid>
		<description><![CDATA[Только что стал свидетелем, как Expressi milk frother, купленный в Алди за 20 баксов, был продан на и-бее за 510 (пятьсот десять долларов) плюс 17 (семнадцать долларов) за доставку.
А шо делать, дифисит!
]]></description>
			<content:encoded><![CDATA[<p>Только что стал свидетелем, как Expressi milk frother, купленный в Алди за 20 баксов, был продан на и-бее за 510 (пятьсот десять долларов) плюс 17 (семнадцать долларов) за доставку.</p>
<p>А шо делать, дифисит!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blinnov.com/2012/03/18/%d0%97%d0%b0%d0%ba%d0%be%d0%bd%d1%8a-%d1%81%d0%bf%d1%80%d0%be%d1%81%d0%b0-%d0%b8-%d0%bf%d1%80%d0%b5%d0%b4%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f/ru/feed/ru/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

