<?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>Aen Sidhe&#039;s Weblog &#187; программирование</title>
	<atom:link href="http://www.aensidhe.ru/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aensidhe.ru</link>
	<description>Просто блог.</description>
	<lastBuildDate>Fri, 03 Feb 2012 10:13:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>А давайте поиграем в задачки.</title>
		<link>http://www.aensidhe.ru/2012/02/03/%d0%b0-%d0%b4%d0%b0%d0%b2%d0%b0%d0%b9%d1%82%d0%b5-%d0%bf%d0%be%d0%b8%d0%b3%d1%80%d0%b0%d0%b5%d0%bc-%d0%b2-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%ba%d0%b8/</link>
		<comments>http://www.aensidhe.ru/2012/02/03/%d0%b0-%d0%b4%d0%b0%d0%b2%d0%b0%d0%b9%d1%82%d0%b5-%d0%bf%d0%be%d0%b8%d0%b3%d1%80%d0%b0%d0%b5%d0%bc-%d0%b2-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%ba%d0%b8/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 09:02:28 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[дневник]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[алгоритмы]]></category>
		<category><![CDATA[субд]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1454</guid>
		<description><![CDATA[А давайте поиграем в задачки. Дано: посты с комментариями. У постов есть теги, у комментариев есть авторы. Ну, комментарии и их авторы нас пока не интересуют. Лежит это всё дело в СУБД. Задача: находить все посты, помечены одним или более тегами (теги на вход подаёт юзер). Чтобы распределение данных было близко к реальности, надо чтобы [...]]]></description>
			<content:encoded><![CDATA[<p>А давайте поиграем в задачки.</p>
<p>Дано: посты с комментариями. У постов есть теги, у комментариев есть авторы. Ну, комментарии и их авторы нас пока не интересуют. Лежит это всё дело в СУБД.</p>
<p>Задача: находить все посты, помечены одним или более тегами (теги на вход подаёт юзер). Чтобы распределение данных было близко к реальности, надо чтобы постов было более 100 тысяч, а количество тегов не превышало 2-3 тысячи, в идеале &#8212; +/- 1 тысяча. На пост от 0 до 10-15 тегов (техническое ограничение должно отсутствовать, возможность не указывать теги должна присутствовать).</p>
<p>Ответ СУБД должна выдавать за минимально возможное время. Например, на системе без нагрузки после компиляций планов/поднятия кеша с винта &#8212; не более 50 мс на один поиск на стандартном десктопе (примерно i7 860 @ 2.8 GHz, 8 Gb DDR3).</p>
<p>Во время решения задачи можно предполагать, что все данные находятся в оперативной памяти.</p>
<p>Для решения задачи можно использовать любую СУБД, обладающую следующими свойствами:<br />
1. СУБД обязана иметь ACID-транзакции.<br />
2. СУБД обязана уметь гарантировать ссылочную целостность данных. Например, через foreign keys.</p>
<p>ЗЫ: я задачку решил и оно используется у нас в продакшене <img src='http://www.aensidhe.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ЗЫ2: важное забыл. Распределение тегов по постам крайне неравномерно. Может быть так, что одним тегом покрыто 10% постов, а другим &#8212; 2 (два, не два процента) поста. И находить должно с одинаковой скоростью по каждому из таких тегов в отдельности и по обоим вместе.</p>
<p>ЗЫ3: решение задачи &#8212; это минимум два запроса: тот, который создаст структуру базы и тот, которым вы выберите посты (id, text минимум) по заданному вводу.</p>

	Метки:<a href="http://www.aensidhe.ru/tag/optimization/" title="optimization" rel="tag">optimization</a>, <a href="http://www.aensidhe.ru/tag/%d0%b0%d0%bb%d0%b3%d0%be%d1%80%d0%b8%d1%82%d0%bc%d1%8b/" title="алгоритмы" rel="tag">алгоритмы</a>, <a href="http://www.aensidhe.ru/category/blog/" title="дневник" rel="tag">дневник</a>, <a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%81%d1%83%d0%b1%d0%b4/" title="субд" rel="tag">субд</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2012/02/03/%d0%b0-%d0%b4%d0%b0%d0%b2%d0%b0%d0%b9%d1%82%d0%b5-%d0%bf%d0%be%d0%b8%d0%b3%d1%80%d0%b0%d0%b5%d0%bc-%d0%b2-%d0%b7%d0%b0%d0%b4%d0%b0%d1%87%d0%ba%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stuxnet Malware Analysis Paper</title>
		<link>http://www.aensidhe.ru/2011/10/11/stuxnet-malware-analysis-paper-2/</link>
		<comments>http://www.aensidhe.ru/2011/10/11/stuxnet-malware-analysis-paper-2/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 11:47:43 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рецензии]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1443</guid>
		<description><![CDATA[http://www.codeproject.com/KB/web-security/StuxnetMalware.aspx Ну, да, баян. Тем не менее, считаю статью интересной. В ней описывается сложнейший червь, известный даже на данный момент, который является ответственным за поломки центрифуг в иранской ядерной программе в 2009-2010 годах. Одно из свидетельств того, что делали это серьёзные люди с серьёзными целями &#8212; вирусная часть червя была подписана сертификатом, выданным корпорацией Verisign [...]]]></description>
			<content:encoded><![CDATA[<p>http://www.codeproject.com/KB/web-security/StuxnetMalware.aspx</p>
<p>Ну, да, баян. Тем не менее, считаю статью интересной. В ней описывается сложнейший червь, известный даже на данный момент, который является ответственным за поломки центрифуг в иранской ядерной программе в 2009-2010 годах.</p>
<p>Одно из свидетельств того, что делали это серьёзные люди с серьёзными целями &#8212; вирусная часть червя была подписана сертификатом, выданным корпорацией Verisign корпорации Realtek. Говорят, что сертификат был украден напрямую из офиса последней.</p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/category/reviews/" title="рецензии" rel="tag">рецензии</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/10/11/stuxnet-malware-analysis-paper-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQL Sentry Plan Explorer</title>
		<link>http://www.aensidhe.ru/2011/07/15/sql-sentry-plan-explorer/</link>
		<comments>http://www.aensidhe.ru/2011/07/15/sql-sentry-plan-explorer/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 08:35:57 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1427</guid>
		<description><![CDATA[Must have for anyone. Ну, по крайней мере, для любого, кто называет себя &#171;разработчиком на t-sql&#187;. Метки:программирование]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sqlsentry.com/plan-explorer/sql-server-query-view.asp">Must have for anyone</a>.</p>
<p>Ну, по крайней мере, для любого, кто называет себя &#171;разработчиком на t-sql&#187;.</p>
<p><a href="http://www.aensidhe.ru/wp-content/uploads/2011/07/SentrySqlPlanExplorer.png"><img class="size-medium wp-image-1428" title="SentrySqlPlanExplorer" src="http://www.aensidhe.ru/wp-content/uploads/2011/07/SentrySqlPlanExplorer-300x168.png" alt="" width="300" height="168" /></a></p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/07/15/sql-sentry-plan-explorer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Вакансия ASP.NET разработчика.</title>
		<link>http://www.aensidhe.ru/2011/07/04/%d0%b2%d0%b0%d0%ba%d0%b0%d0%bd%d1%81%d0%b8%d1%8f-asp-net-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0/</link>
		<comments>http://www.aensidhe.ru/2011/07/04/%d0%b2%d0%b0%d0%ba%d0%b0%d0%bd%d1%81%d0%b8%d1%8f-asp-net-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 07:31:44 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[дневник]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1405</guid>
		<description><![CDATA[В проект papirus.net ищу разработчика. Полный рабочий день, офис на м. Сокол, Москва. Что делать: Писать хороший и удобный для обычных юзеров (не айтишников) UI на JS + CSS + HTML. UI под мобильники и нет. Под разные браузеры под разными ОС Писать не тормозящий бэкенд на C#. Иногда писать запросы к БД (но редко) [...]]]></description>
			<content:encoded><![CDATA[<p>В проект <a href="http://papirus.net" target="_blank">papirus.net</a> ищу разработчика. Полный рабочий день, офис на м. Сокол, Москва.</p>
<p>Что делать:</p>
<ul>
<li>Писать хороший и удобный для обычных юзеров (не айтишников) UI на JS + CSS + HTML. UI под мобильники и нет. Под разные браузеры под разными ОС <img src='http://www.aensidhe.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>Писать не тормозящий бэкенд на C#.</li>
<li>Иногда писать запросы к БД (но редко) на t-SQL.</li>
<li>Искать и внедрять новые технологии, которые улучшат проект.</li>
</ul>
<p>Что дадим:</p>
<ul>
<li>Денег (базовая вилка 70-90 т.р., но всё обсуждается в конце с директором фирмы индивидуально).</li>
<li>Хорошее рабочее место (кампутер, почти безлимитный инет, 24&#8243; монитор).</li>
<li>Немного еды за счёт фирмы (бутерброды, каши быстрого приготовления, йогурты, твороги, сыры, колбасы, фрукты, чай, кофе).</li>
<li>Относительно свободный график (после испытательного срока).</li>
<li>Замечательный коллектив (всего около 20 человек, но над этим проектом работают трое).</li>
<li>Отлаженный рабочий процесс (недельные релизы, скрум-митинги по четвергам, автобилд, перфорц и прочие радости).</li>
</ul>

	Метки:<a href="http://www.aensidhe.ru/category/blog/" title="дневник" rel="tag">дневник</a>, <a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag">рабочее</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/07/04/%d0%b2%d0%b0%d0%ba%d0%b0%d0%bd%d1%81%d0%b8%d1%8f-asp-net-%d1%80%d0%b0%d0%b7%d1%80%d0%b0%d0%b1%d0%be%d1%82%d1%87%d0%b8%d0%ba%d0%b0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>compatibility</title>
		<link>http://www.aensidhe.ru/2011/03/30/compatibility/</link>
		<comments>http://www.aensidhe.ru/2011/03/30/compatibility/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 07:35:27 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[дневник]]></category>
		<category><![CDATA[программирование]]></category>
		<category><![CDATA[рецензии]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1339</guid>
		<description><![CDATA[Для затравки загадка: почему Windows Vista и Windows 7 занимают по 20 и более гигабайт? Ответ в конце поста. Итак, один из штатных троллей канальчека сделал вброс на тему полугодовой давности. Тема следующая: разработчики glibc в линуксе привели поведение memcpy в соответствие со стандартом и всякий софт начал из-за этого падать (потому что клухацкеры полагались [...]]]></description>
			<content:encoded><![CDATA[<p>Для затравки загадка: почему Windows Vista и Windows 7 занимают по 20 и более гигабайт? Ответ в конце поста.</p>
<p>Итак, один из штатных троллей канальчека <span lj:user='danvolodar' style='white-space: nowrap; display: inline !important;'><a href='http://danvolodar.livejournal.com/profile'><img src='http://stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;vertical-align:middle; margin-left: 0; margin-top: 0; margin-right: 0; margin-bottom: 0;' /></a><a href='http://danvolodar.livejournal.com/'><b>danvolodar</b></a></span> сделал вброс на тему полугодовой давности. Тема следующая: разработчики glibc в линуксе привели поведение memcpy в соответствие со стандартом и всякий софт начал из-за этого падать (потому что клухацкеры полагались на недокументированное поведение). Для начала закопипастю свою позицию по данному конкретному случаю:</p>
<blockquote><p>Есть много денег, как у Майкрософта — лепи костыль для каждого кулхацкера (как, например, поддержка SimCity и прочего). Нет много денег, как обычно, следи, чтобы документированное работало как работало. В целом, виноваты, кулхацкеры, использовавшие недокументированные фичи.</p></blockquote>
<p>Теперь я свою позицию поясню. Потому что люди, с разработкой не связанные её не понимают.</p>
<p>У нас есть стандарт языка Си. Этот стандарт нужен не только для линукса на х86 и х86-64, но также и для линукса на всех остальных архитектурах, а также для Винды, юникса и прочих поделок. Это удобно. Ты пересаживаешься на новую ОС/другую архитектуру и ты знаешь, какого поведения ожидать от той или иной функции рантайма. Именно для этого стандарт и был создан. Поэтому, если находим баг в реализации стандарта, его надо исправлять. Обязательно. Или документировать различие, в случае если исправление нецелесообразно.</p>
<p>Тут сразу же встаёт проблема совместимости, когда сторонние разрабы-кулхацкеры, которые использовали твою реализацию стандарта, полагаясь на недокументированные бажные фичи, начнут плакать &#171;аааа, у нас всё упало, верните как было&#187;. Так было, есть и будет. Разработчика-кулхацкера не интересует соответствие стандартам, его не интересует, что реализацию стандарта использует куча других людей. Ему нужно, чтобы его маленький хак работал и не надо было ничего делать. Вполне логичное поведение.</p>
<p>Эту проблему можно решать двумя способами.</p>
<ol>
<li>Мы вносим в документацию изменение: &#171;идите нахер со своими стандартами, у нас будет вот так&#187;. Этот вариант хорош тем, что не надо ничего делать. Плох тем, что наша реализация отличается от стандарта, новый человек будет неприятно удивлён, когда об этом узнает =&gt; кривая обучения становится круче. Надо знать не только стандарт, но и кучу маленьких хачков, прикрученных ради неумех.</li>
<li>Придумать способ сосуществования разных версий одного и того же модуля, даже если атрибут &#171;версия&#187; у них одинаковый. Это стоит а) денег (в виде работы проектировщиков, разработчиков и т.д.); б) места на жёстком диске юзера. Именно поэтому последние версии виндов так дохера занимают место.</li>
</ol>
<p>Способ 2, реализованный в Майкрософте относительно прост и туп. При линковке в EXE записывается не только версия dll, но и хеш той конкретной длл, с которой мы линкуемся. А винда хранит кучу версий этот длл и умеет найти нужную дллку по хешу. В результате, у нас есть более новые версии библиотек с исправленными багами и старые версии библиотек для софта, который использует недокументированные фичи. Все довольны и счастливы. Почему так нельзя сделать в линупсе мне непонятно.</p>
<p>Способ 2, реализованный у Apple, проще и тупее. Там просто каждая программа таскает за собой все необходимые ей библиотеки с собой. И никаких проблем нет.</p>
<p>Вернёмся к нашим баранам. Предложенное Линусом решение &#8212; сделать memcpy алиасом memmove &#8212; абсолютно неприемлимо. Потому что, кроме 1% от всех десктопов, у Линукса есть ещё минимум 18% &#171;встраиваемых устройств&#187; (роутеры, свитчи, мобилы, пылесосы, станки, военные чипы всякие и пр.), которые ещё не вылезли в рай двухгигагерцовых процов и гигабайтов памяти. И, скорее всего, не вылезут. И им разница между memcpy и memmove важна и критична до сих пор. И эти 18% в абсолютном исчислении в разы больше, чем 1% от десктопов. Наиболее правильное решение в условиях линуксоидов (малый бюджет, етс) было <a href="http://www.rsdn.ru/forum/philosophy/4041455.1.aspx">предложено на рсдн тогда же, полгода назад</a>:</p>
<ol>
<li>На уровне <del>молока матери</del> билд-системы разделение на DEBUG и RELEASE билды, вместо самописных велосипедов в половине make-файлов.</li>
<li>За год до изменения модифицируем debug-версию memcpy(), чтобы там вылетал ASSERT() в случае пересекаюшихся буферов.</li>
<li>Даем девелоперам год на фикс. Пишем об этом явно и везде.</li>
<li>Спустя год, меняем release-реализацию.</li>
</ol>
<p>Но линуксоидам же нахер не надо этого делать, им надо поорать друг на друга &#171;ты мудак и твоя реализация говно&#187;. Это, кстати, показывает всю суть текущей реализации опен-сорца в большинстве проектов. Когда Линусу или ещё кому предъявляешь претензии (например, по дохера не закрытых критических багов годами), они говорят: это опен-сорц, возьми да исправь сам, а не хочешь &#8212; жри, что дают, бесплатно же. Когда же делаешь так с ними (см. разрабов glibc), то вой до небес: &#171;как вы смели, моя софтинка падает, мне править некогда, вы &#8212; мудаки&#187;.</p>
<p>Теперь не менее важное, кто виноват в данном конкретном случае (в порядке убывания):</p>
<ol>
<li>Те, кто посадил в 1993м году багу и 17 лет не правил.</li>
<li>Те, кто использовал этот баг.</li>
<li>Те, кто изменил поведение де-факто без оповещений заранее.</li>
</ol>

	Метки:<a href="http://www.aensidhe.ru/category/blog/" title="дневник" rel="tag">дневник</a>, <a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/category/reviews/" title="рецензии" rel="tag">рецензии</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/03/30/compatibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia &amp; Windows Mobile</title>
		<link>http://www.aensidhe.ru/2011/02/15/nokia-windows-mobile/</link>
		<comments>http://www.aensidhe.ru/2011/02/15/nokia-windows-mobile/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 13:47:49 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1289</guid>
		<description><![CDATA[Вы знаете, тут везде плач Ярославны по поводу смерти Symbian&#8217;a. Я скажу как разработчик. За такое надо убивать. И нажмёшь ты кнопочку сразу, или через пять минут &#8212; это не важно и ни на минуту не приблизит тебя к моменту старта эмулятора. Эмуляторы iPhone, Blackberry и Windows Mobile так не делают. Метки:программирование, рабочее]]></description>
			<content:encoded><![CDATA[<p>Вы знаете, тут везде плач Ярославны по поводу смерти Symbian&#8217;a. Я скажу как разработчик. За <a href="http://www.aensidhe.ru/wp-content/uploads/2011/02/Nokia.png">такое</a> надо убивать. И нажмёшь ты кнопочку сразу, или через пять минут &#8212; это не важно и ни на минуту не приблизит тебя к моменту старта эмулятора. Эмуляторы iPhone, Blackberry и Windows Mobile так не делают.</p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag">рабочее</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/02/15/nokia-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VMWare + Mac OS 10.6.6 + XCode 3.2.5 + iOS SDK 4.2</title>
		<link>http://www.aensidhe.ru/2011/01/31/vmware-mac-os-10-6-6-xcode-3-2-5-ios-sdk-4-2/</link>
		<comments>http://www.aensidhe.ru/2011/01/31/vmware-mac-os-10-6-6-xcode-3-2-5-ios-sdk-4-2/#comments</comments>
		<pubDate>Mon, 31 Jan 2011 10:10:40 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1274</guid>
		<description><![CDATA[Надо кому? А то я вчера поставил всё. Всё удовольствие &#8212; 11 гигабайт. Метки:программирование, рабочее]]></description>
			<content:encoded><![CDATA[<p>Надо кому? А то я вчера поставил всё. Всё удовольствие &#8212; 11 гигабайт.</p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag">рабочее</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/01/31/vmware-mac-os-10-6-6-xcode-3-2-5-ios-sdk-4-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Шрёдинбаги</title>
		<link>http://www.aensidhe.ru/2011/01/26/%d1%88%d1%80%d1%91%d0%b4%d0%b8%d0%bd%d0%b1%d0%b0%d0%b3%d0%b8/</link>
		<comments>http://www.aensidhe.ru/2011/01/26/%d1%88%d1%80%d1%91%d0%b4%d0%b8%d0%bd%d0%b1%d0%b0%d0%b3%d0%b8/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 17:14:09 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1268</guid>
		<description><![CDATA[Шрёдинбаг (англ. Schrödinbug) — термин, используемый в программировании для описания программной ошибки, которая никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на неё в исходном коде или попытается использовать программу в необычных условиях и осознаёт, что система вообще не могла работать при наличии такой ошибки. После этого программа перестаёт работать вообще до тех [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Шрёдинбаг (англ. Schrödinbug) — термин, используемый в программировании для описания программной ошибки, которая никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на неё в исходном коде или попытается использовать программу в необычных условиях и осознаёт, что система вообще не могла работать при наличии такой ошибки. После этого программа перестаёт работать вообще до тех пор, пока ошибка не будет исправлена.</p></blockquote>
<p>Вот у меня проект только из них и состоит.</p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag">рабочее</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/01/26/%d1%88%d1%80%d1%91%d0%b4%d0%b8%d0%bd%d0%b1%d0%b0%d0%b3%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>apple и всё для людей</title>
		<link>http://www.aensidhe.ru/2011/01/26/apple-%d0%b8-%d0%b2%d1%81%d1%91-%d0%b4%d0%bb%d1%8f-%d0%bb%d1%8e%d0%b4%d0%b5%d0%b9/</link>
		<comments>http://www.aensidhe.ru/2011/01/26/apple-%d0%b8-%d0%b2%d1%81%d1%91-%d0%b4%d0%bb%d1%8f-%d0%bb%d1%8e%d0%b4%d0%b5%d0%b9/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 12:13:25 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рабочее]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1264</guid>
		<description><![CDATA[С бубном, плясками и двумя ребутами вогнал ногами Mac OS в VMWare. А автокорреция iPad&#8217;a предлагает менять aensidhe на webforms. Метки:программирование, рабочее, юмор]]></description>
			<content:encoded><![CDATA[<p>С бубном, плясками и двумя ребутами вогнал ногами Mac OS в VMWare.</p>
<p>А автокорреция iPad&#8217;a предлагает менять aensidhe на webforms.</p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag">рабочее</a>, <a href="http://www.aensidhe.ru/tag/%d1%8e%d0%bc%d0%be%d1%80/" title="юмор" rel="tag">юмор</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2011/01/26/apple-%d0%b8-%d0%b2%d1%81%d1%91-%d0%b4%d0%bb%d1%8f-%d0%bb%d1%8e%d0%b4%d0%b5%d0%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bad code</title>
		<link>http://www.aensidhe.ru/2010/10/28/bad-code/</link>
		<comments>http://www.aensidhe.ru/2010/10/28/bad-code/#comments</comments>
		<pubDate>Thu, 28 Oct 2010 09:02:05 +0000</pubDate>
		<dc:creator>Aen Sidhe</dc:creator>
				<category><![CDATA[программирование]]></category>
		<category><![CDATA[рабочее]]></category>

		<guid isPermaLink="false">http://www.aensidhe.ru/?p=1143</guid>
		<description><![CDATA[Знаете, вот иногда я готов убивать. Например, за код вида: private void F() { &#160;&#160;&#160;&#160;if (condition) &#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// do nothing &#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;else &#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (condition2) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// do nothing... &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;{ &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;.... &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;} &#160;&#160;&#160;&#160;} } Сложно написать так что ли? private void F() { &#160;&#160;&#160;&#160;if (condition) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return; &#160;&#160;&#160;&#160;if (condition2) &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return; &#160;&#160;&#160;&#160;... } Метки:программирование, рабочее]]></description>
			<content:encoded><![CDATA[<p>Знаете, вот иногда я готов убивать. Например, за код вида:<br />
<code>private void F()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (condition)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// do nothing<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (condition2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// do nothing...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;....<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</code></p>
<p>Сложно написать так что ли?<br />
<code>private void F()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (condition)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (condition2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<br />
&nbsp;&nbsp;&nbsp;&nbsp;...<br />
}<br />
</code></p>

	Метки:<a href="http://www.aensidhe.ru/category/development/" title="программирование" rel="tag">программирование</a>, <a href="http://www.aensidhe.ru/tag/%d1%80%d0%b0%d0%b1%d0%be%d1%87%d0%b5%d0%b5/" title="рабочее" rel="tag">рабочее</a><br />
]]></content:encoded>
			<wfw:commentRss>http://www.aensidhe.ru/2010/10/28/bad-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

