<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;CUcASHo7eCp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069</id><updated>2011-11-28T05:17:29.400+04:00</updated><category term="linux" /><category term="lifestyle" /><category term="emotions" /><category term="android" /><category term="tools" /><category term="promote" /><category term="MFC" /><category term="intel tbb" /><category term="gdb" /><category term="intel" /><category term="собеседование" /><category term="development" /><category term="блог" /><category term="gcc" /><category term="wii" /><category term="fun" /><category term="tbb" /><category term="c++" /><category term="stl" /><category term="музыка" /><category term="задачи" /><title>Полёт нормальный!</title><subtitle type="html">Эмоции, впечатления... Всё, что вокруг. Всё, что выкидывает из привычной "колеи" и заставляет мои глаза гореть... Это и Linux, и С++, и просто происходящее вокруг...</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/brightestbear" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="brightestbear" /><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://www.bloglines.com/sub/http://feeds.feedburner.com/brightestbear" 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://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" 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.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fbrightestbear" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;CUMMQXo7eyp7ImA9WhdbF0s.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2442731277517534670</id><published>2011-10-15T19:54:00.000+04:00</published><updated>2011-10-16T15:11:20.403+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-16T15:11:20.403+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="promote" /><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Продвижение приложения для Android. Ну и как это делать?</title><content type="html">&lt;div&gt;
  &lt;p&gt;В предыдущем посте я писал о своём первом приложении для Android. Что я хочу почерпнуть для себя из этого начинания? Во-первых, мне интересно посмотреть на новую для себя платформу, почувствовать её на реальном полезном и мне, и другим приложении. Во-вторых, разработка - это ещё только половина дела. Мало написать приложение, нужно чтобы о нём узнали потенциальные пользователи: чтобы что-то шло по рельсам, эти рельсы вначале нужно проложить. И этот аспект мне не менее интересен. О нём в этом посте и расскажу.&lt;/p&gt;
  &lt;p&gt;Итак, исходные данные: и &lt;a href="https://market.android.com/details?id=com.kondrikov.locationreport"&gt;платная&lt;/a&gt;, и &lt;a href="https://market.android.com/details?id=com.kondrikov.locationreport.lite"&gt;бесплатная&lt;/a&gt; версии выложены в Android Market в раздел &lt;a href="https://market.android.com/apps/TOOLS"&gt;Инструменты&lt;/a&gt;. Как "обнадёживает" статистика Google, пользователи из России - это лишь 1.5% всех установок из этого раздела. С них и решил начать :-) &lt;/p&gt;
  &lt;h2&gt;О счастье&lt;/h2&gt;
  &lt;p&gt;По итогам первого дня бесплатная версия была установлена 24 счастливчиками. Тут требуется пояснение. Дело в том, что найти новое приложение через Android Market можно &lt;em&gt;только по прямому названию&lt;/em&gt;. Поиск по казалось бы связанным с приложением ключевым словам часто приводит к сильно нерелевантным результатам поисковой выборки. Раньше только что добавленные приложения можно было увидеть в специальном разделе, но в новой версии Маркета этот раздел был резонно убран: новые приложения добавляются с быстротой, часто достойной применения в каких-нибудь других программных проектах, поэтому подкараулить в этом списке новое хорошее приложение дело большой удачи. Поздравляю, всех установивших в первый день!&lt;/p&gt;
  &lt;h2&gt;О группах в соцсетях&lt;/h2&gt;
  &lt;p&gt;Во второй вечер я решил проверить отклик от соцсетей. Нашёл несколько групп ВКонтакте, посвящённых операционной системе Android и программному обеспечению для неё. Причём выбирал группы с большим (несколько тысяч) числом участников и с активными обсуждениями на стене. В этих группах поместил на стене сообщение, которое на мой взгляд должно было бы заинтересовать потенциальных пользователей. Получившийся результат показал, что &lt;em&gt;с соцсетями много не навзаимодействуешь&lt;/em&gt;, ведь результат - плюс две (!) установки.&lt;/p&gt;
  &lt;h2&gt;Об обзорах на известном ресурсе&lt;/h2&gt;
  &lt;p&gt;Уже к концу первого дня в Маркет стало ясно, что приложение можно донести до пользователей только напрямую рассказав о нём как можно более широкой аудитории. Поэтому сел и не торопять за день написал обзор на &lt;a href="http://4pda.ru/2011/09/27/47280/"&gt;4pda&lt;/a&gt;. После публикации день был занят обсуждением обзора в комментариях. Причём как я понял, приложения такого рода вызывают совершенно противоположные чувства у читающих. Я старался отвечать максимально нейтрально, вежливо и чётко, хотя иногда хотелось послать куда подальше комментаторов, которые минуя меня, обсуждали нечто&amp;nbsp;&lt;span style="background-color: transparent;"&gt;относящееся&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: transparent;"&gt;к делу настолько удалённо, что связь была малозаметна. Часть комментирующих кажется вообще не умеет читать предыдущих комментариев. Но это уже, как говорится, их проблемы.&lt;/span&gt;&lt;/p&gt;
  &lt;p&gt;&lt;span style="background-color: transparent;"&gt;Через день после обзора у меня было 334 пользователя бесплатной версии и 12 человек, купивших платную.&lt;/span&gt;&lt;/p&gt;
  &lt;p&gt;Есть ещё один момент остающийся для меня загадкой. Странно, что &lt;em&gt;люди не стремятся описать проблему&lt;/em&gt;, тем более, что в программе есть пункт меню "Обратная связь". Им интереснее отвести душу в отзывах, чем разрешить возникшую проблему? Но это кажется опять из области психологии.&lt;/p&gt;
  &lt;h2&gt;Результаты и выводы&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;p&gt;Обязательно просите своих пользователей писать отзыв и ставить рейтинг, если ваше приложение им нравится, потому что обязательно найдутся те, кто не разобрался/не настроил/с кривыми руками. А уж они-то отрицательный отзыв вам напишут обязательно. Причём никаких пояснений указано не будет. Просто будет написано "Не работает" и всё тут.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;p&gt;Добавьте в своё приложение функцию обратной связи на видное место. Потому что, повторюсь, пользователи в комментариях не описывают проблему. Обратная связь - ваш единственный шанс выспросить у них всё.&lt;/p&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;p&gt;Первый серьёзный скачок в установках - по сути является публичным beta-тестированием. Причём условия действительно боевые. В этот момент постарайтесь максимально оперативно выпустить обновление, ведь в случае промедления, вы расплачиваетесь низкими оценками (потому что, не устаю повторять, в первую очередь будут писать отзывы те, у кого есть проблемы).&lt;/p&gt;
    &lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2442731277517534670?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=pN-2Evi5sAw:_Fe3dTyuNKk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=pN-2Evi5sAw:_Fe3dTyuNKk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=pN-2Evi5sAw:_Fe3dTyuNKk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/pN-2Evi5sAw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2442731277517534670/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2442731277517534670" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2442731277517534670?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2442731277517534670?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2011/10/android.html" title="Продвижение приложения для Android. Ну и как это делать?" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CUICR348fSp7ImA9WhdbF0s.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-38668188652737529</id><published>2011-09-24T08:57:00.001+04:00</published><updated>2011-10-16T15:12:46.075+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-16T15:12:46.075+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="android" /><title>Первый опыт программирования под Android</title><content type="html">&lt;div&gt;&lt;p&gt;Написал свое &lt;a href="http://market.android.com/details?id=com.kondrikov.locationreport.lite"&gt;первое приложение&lt;/a&gt; для Android. Сразу скажу, что не последнее. :-) Оно позволяет запросить местоположение, послав на телефон специальное SMS-сообщение. Причем в отличие от стотыщпицот аналогичных приложений, можно смотреть историю предыдущих запросов и контролировать, кому именно разрешено запрашивать. Старался сделать по удобству нечто, напоминающее стандартный список контактов телефона и журнал звонков.&lt;/p&gt;
&lt;p&gt;Самым сложным в разработке было придумать название, но с этим удалось справиться. ;-) Остановился на Handy Locator. Мало того, это был еще и первый опыт программирования на Java. Первое время я конечно же пытался программировать на Java как на C++,&amp;nbsp; что мне очень не нравилось. Но через пару недель втянулся, разобрался с языком, платформенным API и Eclipse. Короче говоря, понравились мне и процесс, и результат.&lt;/p&gt;
&lt;p&gt;Продолжение обязательно последует!&lt;/p&gt;
&lt;a href="http://market.android.com/details?id=com.kondrikov.locationreport.lite"&gt;&lt;br /&gt;
  &lt;img src="http://www.android.com/images/brand/60_avail_market_logo1.png"
       alt="Available in Android Market" /&gt;&lt;br /&gt;
&lt;/a&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-38668188652737529?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Xcs15zOgkUQ:H8abtDVRVLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Xcs15zOgkUQ:H8abtDVRVLA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=Xcs15zOgkUQ:H8abtDVRVLA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/Xcs15zOgkUQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/38668188652737529/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=38668188652737529" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/38668188652737529?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/38668188652737529?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2011/09/android.html" title="Первый опыт программирования под Android" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DEMNSHozeSp7ImA9WxBbGEw.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-3673228040673749048</id><published>2010-03-17T11:30:00.007+03:00</published><updated>2010-03-17T12:01:39.481+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-17T12:01:39.481+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="собеседование" /><category scheme="http://www.blogger.com/atom/ns#" term="задачи" /><title>Задачи на собеседовании. Входной тест</title><content type="html">&lt;div style="text-align: justify;"&gt;Приведу примеры заданий, которые периодически даю кандидатам на собеседовании. Задачи не то чтобы сложные, но и не сказать, чтобы элементарные. Просто для правильного ответа требуется иметь определённый уровень знаний, который на собеседовании будем считать "входящим". Если получены хорошие ответы, значит можно общаться дальше, и уже более глубоко и конкретно.&lt;/div&gt;

&lt;br/&gt;&lt;span style="font-weight: bold;"&gt;Задание 1&lt;/span&gt;
&lt;pre&gt;&lt;code&gt;
// Скомпилируется ли данный код? Если да, то что будет выведено на экран?

class String
{
public:
  String(char* str)
    : data_(NULL),
      len_(strlen(str))
  {
    data_ = new char(len_ + 1);
    strcpy(data_, str)
  }

  ~String()
  {
    delete[] data_;
  }

  char* data() const
  {
    return data_;
  }

private:
  char* data_;
  int len_;
};

void print(String s)
{
  std::cout &amp;lt;&amp;lt; s.data() &amp;lt;&amp;lt; std::endl;
}

int main()
{
  String s1("s1");
  String s2 = s1;
  String s3(s1);

  print(s1);
  print(s2);
  print(s3);

  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;div style="text-align: justify;"&gt;Кандидату плюс, если он скажет, что умолчательный копирующий конструктор в С++ выполняет memberwise копирование, в отличие от bitwise в C. Как правило все понимают, что при копировании объектов буфер окажется общим, и возникнет непредсказуемое поведение при удалении. Только не все замечают, что функция &lt;span style="font-family: monospace;"&gt;print&lt;/span&gt; принимает объект класса &lt;span style="font-family: monospace;"&gt;String&lt;/span&gt; по значению, а следовательно проблема возникнет раньше выхода из &lt;span style="font-family: monospace;"&gt;main&lt;/span&gt;.&lt;/div&gt;

&lt;br/&gt;&lt;span style="font-weight: bold;"&gt;Задание 2&lt;/span&gt;
&lt;pre&gt;&lt;code&gt;
// Что будет выведено в результате работы программы?

class A
{
public:
  virtual void print() const
  {
    std::cout &amp;lt;&amp;lt; "A";
  }
};

class B : public A
{
public:
  virtual void print() const
  {
    std::cout &amp;lt;&amp;lt; "B";
  }
};

void print(A a)
{
  a.print();
}

int main()
{
  A a;
  B b;

  print(a);
  print(b);

  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;div style="text-align: justify;"&gt;&lt;p&gt;Тут опять обыгрывается момент, что передача аргумента в функцию &lt;span style="font-family: monospace;"&gt;print&lt;/span&gt; происходит по значению. Разве что, следствие из этого имеет другой характер.&lt;/p&gt;&lt;br/&gt;&lt;p&gt;Следующие два задания даю, чтобы посмотреть как у человека дела с обобщенным программированием. Никаких проблем не возникнет, если кандидат знает, как управляться со специализацией шаблонов. Некоторые удивляются, увидев, что параметром шаблона может быть не тип, а значение типа.&lt;/p&gt;&lt;/div&gt;

&lt;br/&gt;&lt;span style="font-weight: bold;"&gt;Задание 3&lt;/span&gt;
&lt;pre&gt;&lt;code&gt;
// Описать работу данного кода

template &amp;lt;int N&amp;gt;
class print
{
public:
  print()
  {
    std::cout &amp;lt;&amp;lt; N &amp;lt;&amp;lt; std::endl;
    print&amp;lt;N-1&amp;gt;();
  }
};

template &amp;lt;&amp;gt;
class print&amp;lt;1&amp;gt;
{
public:
  print()
  {
    std::cout &amp;lt;&amp;lt; "1" &amp;lt;&amp;lt; std::endl;
  }
};

int main()
{
  print&amp;lt;12&amp;gt; p;

  return 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;br/&gt;&lt;span style="font-weight: bold;"&gt;Задание 4&lt;/span&gt;
&lt;pre&gt;&lt;code&gt;
// Описать работу данного кода

template&amp;lt;bool&amp;gt;
struct static_assert;

template&amp;lt;&amp;gt;
struct static_assert&amp;lt;true&amp;gt;
{
};

template&amp;lt;typename T&amp;gt;
void func(T)
{
  static_assert&amp;lt;false&amp;gt;();
}

template&amp;lt;&amp;gt;
void func(int)
{
  std::cout &amp;lt;&amp;lt; "func(int)" &amp;lt;&amp;lt; std::endl;
}

template&amp;lt;&amp;gt;
void func(double)
{
  std::cout &amp;lt;&amp;lt; "func(double)" &amp;lt;&amp;lt; std::endl;
}

int main()
{
  func(1.0);
  funс(500);
  func("b");

  return 0;
}
&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-3673228040673749048?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=9kywgn7ocRU:Mhf-43V9wLA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=9kywgn7ocRU:Mhf-43V9wLA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=9kywgn7ocRU:Mhf-43V9wLA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/9kywgn7ocRU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/3673228040673749048/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=3673228040673749048" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/3673228040673749048?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/3673228040673749048?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2010/03/blog-post.html" title="Задачи на собеседовании. Входной тест" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C04ERXc_eip7ImA9WxRSFko.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-387332478516299753</id><published>2008-09-17T20:51:00.004+04:00</published><updated>2008-09-17T21:18:24.942+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-17T21:18:24.942+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><title>Pure virtual destructor</title><content type="html">&lt;div style="text-align: justify;"&gt;Как-то ускользнул от меня раньше этот момент. Оказывается, деструктор тоже может быть чисто виртуальным. В стандарте про это всего лишь строчка [&lt;a href="http://www.kuzbass.ru/docs/isocpp/special.html"&gt;12.4.7&lt;/a&gt;]. Похоже, сделано это, чтобы иметь возможность запретить инстанциирование в случае, когда в классе вообще отсутствуют виртуальные функции. В общем-то тоже самое, что и в случае чисто виртуальных функций, только у чисто виртуальных функций определение опционально, а у чисто виртуального деструктора оно обязательно.&lt;br/&gt;Итак имеется базовый класс без виртуальных функций. Полиморфное использование отпадает. Чего тогда с этим делать? Единственное пришедшее в голову неэкзотическое применение - при создании классов, предназначенных для использования в качестве базовых при наследовании реализации (private-наследовании). Слишком накручено? Или у меня сегодня плохо с фантазией?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-387332478516299753?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=-jgpCGEwDM4:bAOgDDOcWDQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=-jgpCGEwDM4:bAOgDDOcWDQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=-jgpCGEwDM4:bAOgDDOcWDQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/-jgpCGEwDM4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/387332478516299753/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=387332478516299753" title="Комментарии: 11" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/387332478516299753?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/387332478516299753?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/09/pure-virtual-destructor.html" title="Pure virtual destructor" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>11</thr:total></entry><entry gd:etag="W/&quot;C0QFR349eSp7ImA9WxdXFko.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2477817920470951028</id><published>2008-06-28T20:33:00.003+04:00</published><updated>2008-06-28T20:41:56.061+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-28T20:41:56.061+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><title>Метко</title><content type="html">&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
&lt;div style="text-align: right;"&gt;Rick Cook, &lt;i&gt;The Wizardry Compiled&lt;/i&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br/&gt;&lt;a href="http://www.quotationspage.com/quote/781.html"&gt;Сегодняшняя цитата&lt;/a&gt; с &lt;a href="http://www.quotationspage.com/"&gt;Quotations page&lt;/a&gt; :-)) &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2477817920470951028?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=HLFi4BGomeY:tcR735b17vY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=HLFi4BGomeY:tcR735b17vY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=HLFi4BGomeY:tcR735b17vY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/HLFi4BGomeY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2477817920470951028/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2477817920470951028" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2477817920470951028?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2477817920470951028?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/06/blog-post.html" title="Метко" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C04BSX84eip7ImA9WxdRGUw.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-237185199617310900</id><published>2008-06-08T11:11:00.009+04:00</published><updated>2008-06-08T11:59:18.132+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-08T11:59:18.132+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tools" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="development" /><title>Пять инструментов. Ну, или почти 5</title><content type="html">&lt;div style="text-align: justify;"&gt;Ну что же, начинаю разгоняться на своём этапе эстафеты, схватив палочку, переданную мне &lt;a href="http://deepencpp.blogspot.com/2008/06/5.html"&gt;Юрием Волковым&lt;/a&gt;.

&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Не то, чтобы инструмент, но запускаю каждый день точно. Уже больше года в качестве основной операционки дома использую &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;. Из других дистрибутивов смотрел &lt;a href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt; и &lt;a href="http://www.opensuse.org/"&gt;OpenSUSE&lt;/a&gt;, но что-то не понравилось. Хотя может быть стаботал эффект первого положительного впечатления. Единственное, что не очень нравится - качество Upgrage на новую версию. После обновления на 7.10 отвалилась сеть - было не очень приятно. Обновление на 8.04 тоже прошло не слишком гладко (всё ещё есть вещи не работающие как надо). Но при всём при этом, работая в Linux, чувствую себя гораздо свободнее, чем в Windows (операционка на работе и вторая операционка дома).&lt;/li&gt;&lt;li&gt;На втором месте ожидаемо находится &lt;a href="http://www.mozilla-europe.org/ru/products/firefox/"&gt;Firefox&lt;/a&gt;. Конечно же вместе со своими расширениями: Adblock Plus, Fire Gestures, Faviconize Tab, del.icio.us Bookmarks, Foxmarks, Secure Login, Permit Cookies, Uppity и ещё десятком других. Очень жду работы &lt;a href="https://addons.mozilla.org/ru/firefox/addon/3615"&gt;del.icio.us Bookmarks&lt;/a&gt; с Firefox 3 - жутко удобное средство. Без него даже не знаю, как бы я управлял &lt;a href="http://del.icio.us/kondrikov"&gt;своими&lt;/a&gt; более чем 400 закладками.&lt;/li&gt;&lt;li&gt;Теперь средства разработки. Конечно же &lt;a href="http://msdn.microsoft.com/en-us/vstudio/default.aspx"&gt;Visual Studio&lt;/a&gt;. Но обязательно в связке с &lt;a href="http://www.wholetomato.com/"&gt;Visual Assist&lt;/a&gt;.&lt;br/&gt;Перед написанием поста прикинул, какие инструменты хочу поместить в этот список из пяти вещей и понял, что не умещаюсь. Решил схитрить и указать в этом пункте ещё и замечательнейшее средство &lt;a href="http://www.blogger.com/www.visual-paradigm.com/product/vpuml/"&gt;Visual Paradigm for UML&lt;/a&gt;  - лучшая вещь для построения UML-диаграмм. Всё делается буквально в пару кликов мыши - минимальный путь между мыслью в голове и её реализацией на экране.&lt;/li&gt;&lt;li&gt;Слушаю музыку почти всегда. Даже не знаю, есть что-нибудь лучше чем &lt;a href="http://amarok.kde.org/"&gt;Amarok&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://freemind.sourceforge.net/"&gt;FreeMind&lt;/a&gt; - кроссплатформенный инструмент для создания mind maps. Текущая стабильная версия - 0.8.1. Но очень советую использовать бету 0.9.0, обладающую заметно большей функциональностью. Важным преимуществом для меня является то, что практически все основные действия можно выполнять без использования мыши вообще.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;Кончились у меня все пункты списка, но очень хочется упомянуть &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;, имеющий все шансы попасть через некоторое время в описываемый перечень. Всего месяц назад я попробовал первый раз в нём работать - потрясающий расширяемый инструмент. Пускай идёт вне конкурса ;-)&lt;br /&gt;&lt;br /&gt;Если кто из нижеперечисленных тут бывает, то с радостью передам эстафету дальше:&lt;ul&gt;&lt;li&gt;&lt;a href="http://lktalks.blogspot.com/"&gt;Лев Курц&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://brainslugs.blogspot.com/"&gt;lrrr&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://denismiller.blogspot.com/"&gt;Денис Миллер&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://users.livejournal.com/_winnie/"&gt;_winnie&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-237185199617310900?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=X-nvpNG_6p8:UpuwGI-b4AY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=X-nvpNG_6p8:UpuwGI-b4AY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=X-nvpNG_6p8:UpuwGI-b4AY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/X-nvpNG_6p8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/237185199617310900/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=237185199617310900" title="Комментарии: 6" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/237185199617310900?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/237185199617310900?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/06/5.html" title="Пять инструментов. Ну, или почти 5" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>6</thr:total></entry><entry gd:etag="W/&quot;DEQESXoyeyp7ImA9WxdRFkU.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-994916103469590293</id><published>2008-06-05T21:10:00.004+04:00</published><updated>2008-06-05T21:18:28.493+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-06-05T21:18:28.493+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>IBM Linux: The Kid</title><content type="html">&lt;div style="text-align: justify;"&gt;Очень стильный ролик. Причём достаточно старый. Странно, что раньше не попался&lt;br/&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/sOtKZA9ri7M&amp;hl=en"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/sOtKZA9ri7M&amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-994916103469590293?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=LQ8OXlgcm1U:-qpKjHMcgKQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=LQ8OXlgcm1U:-qpKjHMcgKQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=LQ8OXlgcm1U:-qpKjHMcgKQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/LQ8OXlgcm1U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/994916103469590293/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=994916103469590293" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/994916103469590293?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/994916103469590293?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/06/ibm-linux-kid.html" title="IBM Linux: The Kid" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DEYAQno9cSp7ImA9WxZaEEg.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2684303603140893788</id><published>2008-04-24T20:40:00.003+04:00</published><updated>2008-04-24T20:55:43.469+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-04-24T20:55:43.469+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="emotions" /><category scheme="http://www.blogger.com/atom/ns#" term="lifestyle" /><title>Play to Win</title><content type="html">&lt;div style="text-align: justify;"&gt;Вчера присутствовал на презентации &lt;a href="http://urazbaev.ru/"&gt;Асхата Уразбаева&lt;/a&gt; по Scrum. Обратил внимание на картинку, в общем-то не относящуюся напрямую к разработке. Скорее общепсихологического характера:&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BOxdXX3Rv2g/SBC4j_8UDYI/AAAAAAAAAJc/9FFws6o3OUo/s1600-h/Lets-Play-to-Win.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_BOxdXX3Rv2g/SBC4j_8UDYI/AAAAAAAAAJc/9FFws6o3OUo/s400/Lets-Play-to-Win.jpeg" alt="" id="BLOGGER_PHOTO_ID_5192853298957520258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Очень часто результат давит и мешает добиться того, к чему стремишься. Неожиданно, но если залезть внутрь себя и разобраться в ощущениях, то окажется, что боишься не только провала, но и успеха... Даже смешно, что иногда сам подсознательно противишься вдруг получить то, чего так хочешь...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2684303603140893788?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=FOVXZNmBJxk:A9Ub4IoDJs0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=FOVXZNmBJxk:A9Ub4IoDJs0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=FOVXZNmBJxk:A9Ub4IoDJs0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/FOVXZNmBJxk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2684303603140893788/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2684303603140893788" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2684303603140893788?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2684303603140893788?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/04/play-to-win.html" title="Play to Win" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_BOxdXX3Rv2g/SBC4j_8UDYI/AAAAAAAAAJc/9FFws6o3OUo/s72-c/Lets-Play-to-Win.jpeg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkcFQ3Y9eCp7ImA9WxZSFUk.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-3074408607266317814</id><published>2008-01-28T20:44:00.000+03:00</published><updated>2008-01-28T21:13:32.860+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-28T21:13:32.860+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="wii" /><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><title>Using Wii Remote</title><content type="html">&lt;div style="text-align: justify;"&gt;Оказывается пульт от Wii можно приспособить ещё для очень если не полезных, то забавных и интересных вещей уж точно&lt;br /&gt;3D-Desktop никого не интересует?&lt;br /&gt;&lt;object width="425" height="373"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Jd3-eiid-Uw&amp;rel=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Jd3-eiid-Uw&amp;rel=1&amp;border=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="373"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Может скоро будет пора выкидывать мышь?&lt;br /&gt;&lt;object width="425" height="373"&gt;&lt;param name="movie" value="http://www.youtube.com/v/0awjPUkBXOU&amp;rel=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/0awjPUkBXOU&amp;rel=1&amp;border=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="373"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;Эффектную презентацию можно провести хоть сейчас!&lt;br /&gt;&lt;object width="425" height="373"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5s5EvhHy7eQ&amp;rel=1&amp;border=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5s5EvhHy7eQ&amp;rel=1&amp;border=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="373"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;А главное, автор ничего не зажал. Всё можно повторить в домашних условиях. Необходимые инструкции и для повторения всей этой красоты можно найти на сайте &lt;a href="http://www.cs.cmu.edu/~johnny/projects/"&gt;Johnny Chung Lee&lt;/a&gt;&lt;/div&gt;

P.S.: Сразу захотелось глянуть, сколько стоит пульт :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-3074408607266317814?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=8FVBqeErnbE:U95teXdDY3k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=8FVBqeErnbE:U95teXdDY3k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=8FVBqeErnbE:U95teXdDY3k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/8FVBqeErnbE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/3074408607266317814/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=3074408607266317814" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/3074408607266317814?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/3074408607266317814?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/01/using-wii-remote.html" title="Using Wii Remote" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkMDQnc8fip7ImA9WxZTEkk.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2144285515927281623</id><published>2008-01-13T20:05:00.001+03:00</published><updated>2008-01-13T20:14:33.976+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-01-13T20:14:33.976+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="emotions" /><title>Show Must Go On</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BOxdXX3Rv2g/R4pFOxeXC7I/AAAAAAAAAIw/cgpzOO6OPYI/s1600-h/photo_1"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BOxdXX3Rv2g/R4pFOxeXC7I/AAAAAAAAAIw/cgpzOO6OPYI/s400/photo_1" alt="" id="BLOGGER_PHOTO_ID_5155008843580115890" border="0" /&gt;&lt;/a&gt;
&lt;div style="text-align: justify;"&gt;В фильме "Аты-баты, шли солдаты..." Леонида Быкова был произнесён примерно такой тост: "Когда мы рождаемся, все смеются, а мы плачем. Так пусть мы проживём нашу жизнь так, чтобы когда придёт время умереть, только мы смеялись, а все остальные плакали..."&lt;br /&gt;&lt;br /&gt;Как же грустно... :'(
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2144285515927281623?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=av3B7J4zVfw:thliCo6F4gQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=av3B7J4zVfw:thliCo6F4gQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=av3B7J4zVfw:thliCo6F4gQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/av3B7J4zVfw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2144285515927281623/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2144285515927281623" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2144285515927281623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2144285515927281623?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2008/01/show-must-go-on.html" title="Show Must Go On" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_BOxdXX3Rv2g/R4pFOxeXC7I/AAAAAAAAAIw/cgpzOO6OPYI/s72-c/photo_1" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Ak4MSXc9eCp7ImA9WB9bFkg.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-509803211443853592</id><published>2007-12-24T20:40:00.000+03:00</published><updated>2007-12-26T11:49:48.960+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-26T11:49:48.960+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="intel tbb" /><title>Linked Lists and Parallel Programming</title><content type="html">&lt;div style="text-align: justify;"&gt;Интересный пост появился в Intel® Software Network Blogs в категории Threading Building Blocks.&lt;br /&gt;&lt;a href="http://softwareblogs.intel.com/2007/12/20/linked-lists-incompatible-with-parallel-programming/"&gt;Linked Lists - Incompatible with Parallel Programming?&lt;/a&gt;&lt;br /&gt;Обсуждается использование связных списков, проблемы с параллелизацией алгоритмов на них, и как следствие, почему в TBB нет класса tbb::concurrent_list. Читать с комментариями.&lt;br /&gt;&lt;br /&gt;P.S.: Это первый пост чуть ли не за весь последний месяц. Просто занимаясь одновременно тремя важными делами, сложно уделять время блогу. Пока график очень плотный, но ничего, вскоре после Нового года должен войти в нормальный режим.
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-509803211443853592?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=_vwjIYv_xoo:8Q5RfVxOgo8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=_vwjIYv_xoo:8Q5RfVxOgo8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=_vwjIYv_xoo:8Q5RfVxOgo8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/_vwjIYv_xoo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/509803211443853592/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=509803211443853592" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/509803211443853592?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/509803211443853592?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/12/linked-lists-and-parallel-programming.html" title="Linked Lists and Parallel Programming" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;AkQASX4yfCp7ImA9WB9UEEQ.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-203091743044311110</id><published>2007-12-08T10:10:00.000+03:00</published><updated>2007-12-08T10:19:08.094+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-12-08T10:19:08.094+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="fun" /><title>Головоломка</title><content type="html">&lt;div style="text-align: justify;"&gt;Очень забавная разминалка для головы попалась пару дней назад: &lt;a href="http://fourty.on.ufanet.ru/"&gt;http://fourty.on.ufanet.ru/&lt;/a&gt;. Очень интересно было обсуждать в компании, кто же чего отгадал.  Должен предупредить, есть и совсем уж неприличные выражения... :-)
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-203091743044311110?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=YjmK2Obwn2s:qHJHQuHPOro:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=YjmK2Obwn2s:qHJHQuHPOro:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=YjmK2Obwn2s:qHJHQuHPOro:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/YjmK2Obwn2s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/203091743044311110/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=203091743044311110" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/203091743044311110?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/203091743044311110?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/12/blog-post.html" title="Головоломка" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkAFRn8_eCp7ImA9WB9WFUk.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-760270504597186995</id><published>2007-11-20T10:16:00.000+03:00</published><updated>2007-11-20T10:45:17.140+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-20T10:45:17.140+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="MFC" /><title>Visual Studio 2008 &amp; BCGSoft</title><content type="html">&lt;div style="text-align: justify;"&gt;Вчера &lt;a href="http://www.microsoft.com/presspass/features/2007/nov07/11-19developerqa.mspx"&gt;вышел Visual Studio 2008&lt;/a&gt;, но по этому поводу я бы не стал делать пост.   :-)  Просто есть один очень интересный факт. Одновременно с выходом было объявлено, что в первом квартале 2008 года выйдет обновление, которое будет включать, в частности, существенно улучшенную версию MFC. Для того, чтобы предложить это обновление, Microsoft выбрала партнёром BCGSoft. Команда Visual C++ использовала библиотеку BCGControlBar Professional Edition. Причину выбора объясняют лёгкостью интеграции архитектурных решений библиотеки от BCGSoft в MFC, а также лёгкостью добавления новых возможностей в существующий проект MFC. Для пользователей библиотек BCG это не замена, но всё равно любопытно.
Подробности в &lt;a href="http://msdn2.microsoft.com/ru-ru/visualc/bb892882.aspx"&gt;MSDN&lt;/a&gt; и конечно же на сайте &lt;a href="http://www.bcgsoft.com/"&gt;BCGSoft&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-760270504597186995?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Rcs5uppqbD4:FrWAW-bu5o4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Rcs5uppqbD4:FrWAW-bu5o4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=Rcs5uppqbD4:FrWAW-bu5o4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/Rcs5uppqbD4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/760270504597186995/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=760270504597186995" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/760270504597186995?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/760270504597186995?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/11/visual-studio-2008-bcgsoft.html" title="Visual Studio 2008 &amp; BCGSoft" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DE8CQHk5eCp7ImA9WB9WEk4.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-4648288134823906320</id><published>2007-11-16T20:32:00.000+03:00</published><updated>2007-11-16T21:14:21.720+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-16T21:14:21.720+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><title>Rick Kazman, "Analysis and Management of Software Architectures"</title><content type="html">&lt;div style="text-align: justify;"&gt;Я уже &lt;a href="http://brightestbear.blogspot.com/2007/10/blog-post.html"&gt;говорил&lt;/a&gt;, что планирую посетить семинар Рика Казмана на SEC(R). Естественно побывал. И с любезного разрешения автора выкладываю презентацию этого Workshop. Позволю себе процитировать Рика: "Если бы я проводил двухдневный семинар по архитектуре, я бы назвал его введением в архитектуру, а тут у меня только четыре часа. Поэтому это скорее введение во введение..." (перевод мой).
Но тем не менее, безусловно полезно...&lt;/div&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.box.net/shared/qtj7t2u5v5"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_BOxdXX3Rv2g/Rz3WsurE-uI/AAAAAAAAAIQ/LSJ_TR_4nFo/s400/SADA.SECR.ppt.png" alt="" id="BLOGGER_PHOTO_ID_5133495214203534050" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-4648288134823906320?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Z5Fxtt4arGU:zdo2I5MQ9To:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Z5Fxtt4arGU:zdo2I5MQ9To:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=Z5Fxtt4arGU:zdo2I5MQ9To:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/Z5Fxtt4arGU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/4648288134823906320/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=4648288134823906320" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/4648288134823906320?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/4648288134823906320?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/11/rick-kazman-analysis-and-management-of.html" title="Rick Kazman, &quot;Analysis and Management of Software Architectures&quot;" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_BOxdXX3Rv2g/Rz3WsurE-uI/AAAAAAAAAIQ/LSJ_TR_4nFo/s72-c/SADA.SECR.ppt.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0IFSH8_fip7ImA9WB9XEUs.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-7884151938630727165</id><published>2007-11-04T10:46:00.000+03:00</published><updated>2007-11-04T11:38:39.146+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-04T11:38:39.146+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="intel" /><category scheme="http://www.blogger.com/atom/ns#" term="tbb" /><title>Threading Building Blocks Presentations</title><content type="html">&lt;div style="text-align: justify;"&gt;После проходившего неделю назад &lt;a href="http://brightestbear.blogspot.com/2007/10/multicore-quadcore-beyond-get-ready-for.html"&gt;семинара Intel&lt;/a&gt;, посвящённого многоядерности, у меня появилось две презентации по &lt;a href="http://threadingbuildingblocks.org/"&gt;Intel Threading Building Blocks&lt;/a&gt;. Большое за это спасибо Александру Майорову (за активное содействие) и Антону Пегушину (за незримое участие).

&lt;b&gt;Anton Pegushin - Intel Threading Building Blocks (&lt;a href="http://www.box.net/shared/9u1q19sks4"&gt;pdf&lt;/a&gt;)&lt;/b&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.box.net/shared/9u1q19sks4"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BOxdXX3Rv2g/Ry164dNsdSI/AAAAAAAAAIA/2NY3Lmxljcg/s400/Pegushin_TBB.png" alt="" id="BLOGGER_PHOTO_ID_5128890660978193698" border="0" /&gt;&lt;/a&gt;
&lt;b&gt;Антон Пегушин, Дмитрий Ерёмин - Использование Intel Threading Building Blocks в разработке многопоточных игр (&lt;a href="http://www.box.net/shared/7rqm3ndyof"&gt;pdf&lt;/a&gt;).&lt;/b&gt; Доклад звучал на КРИ-2007, но на сайте конференции эта презентация &lt;a href="http://kriconf.ru/2007/index.php?type=info&amp;amp;doc=speech_records"&gt;выложена&lt;/a&gt; только в звуке.
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.box.net/shared/7rqm3ndyof"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_BOxdXX3Rv2g/Ry169dNsdTI/AAAAAAAAAII/VcebWsoNu4Y/s400/Pegushin_Eremin_TBB_Games.png" alt="" id="BLOGGER_PHOTO_ID_5128890746877539634" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-7884151938630727165?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=2JoTfevX0SU:z6LrKwI75sI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=2JoTfevX0SU:z6LrKwI75sI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=2JoTfevX0SU:z6LrKwI75sI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/2JoTfevX0SU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/7884151938630727165/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=7884151938630727165" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/7884151938630727165?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/7884151938630727165?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/11/threading-building-blocks-presentations.html" title="Threading Building Blocks Presentations" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_BOxdXX3Rv2g/Ry164dNsdSI/AAAAAAAAAIA/2NY3Lmxljcg/s72-c/Pegushin_TBB.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CE8GRH8-eCp7ImA9WB9QGUk.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-436191008095456608</id><published>2007-11-01T21:35:00.000+03:00</published><updated>2007-11-01T21:47:05.150+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-01T21:47:05.150+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="emotions" /><title>Девушки на SEC(R) 2007</title><content type="html">&lt;div style="text-align: justify;"&gt;Не мог не написать этот пост. Огромное спасибо девушкам, которые умудрялись на регистрации распечатывать бейджики прямо &lt;b&gt;по мере необходимости&lt;/b&gt;, т.е. по мере подхода участников. :-) СПАСИБО ЗА ПОДАРЕННОЕ ВЕСЕЛЬЕ И БОДРОСТЬ!! Это было самым лучшим развлечением. Мой бейдж удалось победно повесить на шею только после третьего подхода (с 40-минутным интервалом) :-) И только четвёртый распечатанный экземпляр был правильным!! :-) Бейджики части моих коллег при этом были распечатаны в трёх, а то и четырёх экземплярах!!! :-)
&lt;/div&gt;
P.S.: Наставил огромное количество смайлов и восклицательных знаков. Просто смешно жутко!!! :-) И ещё раз спасибо&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-436191008095456608?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=2Ktp2gvWSeQ:6Q2SJd1cYs8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=2Ktp2gvWSeQ:6Q2SJd1cYs8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=2Ktp2gvWSeQ:6Q2SJd1cYs8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/2Ktp2gvWSeQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/436191008095456608/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=436191008095456608" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/436191008095456608?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/436191008095456608?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/11/secr-2007.html" title="Девушки на SEC(R) 2007" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DkAEQng4cSp7ImA9WB9QEEo.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2649081406884196051</id><published>2007-10-22T21:24:00.000+04:00</published><updated>2007-10-22T21:38:23.639+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-22T21:38:23.639+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="emotions" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><title>Ubuntu upgrade emotions</title><content type="html">&lt;div style="text-align: justify;"&gt;В субботу выполнил автоматический апгрейд &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt; до 7.10. Хотя пока радости от обновления никакой:
&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Отвалилась сеть. Сигнал Wi-Fi слабый-слабый. Если пингуется роутер - можно считать повезло! В выходные взмок, пытаясь что-нибудь сделать, но пока результата нет. Чуть утешил Goolge: такая проблема не у меня одного.&lt;/li&gt;&lt;li&gt;При включении эффектов Compiz Fusion у окон пропадает рамка. Помнится была у меня такая проблема, когда я ставил Beryl. Осталось вспомнить, как я её решил ;-)&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2649081406884196051?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=BaciXQstED0:3fbTA0KEN94:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=BaciXQstED0:3fbTA0KEN94:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=BaciXQstED0:3fbTA0KEN94:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/BaciXQstED0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2649081406884196051/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2649081406884196051" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2649081406884196051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2649081406884196051?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/10/ubuntu-upgrade-emotions.html" title="Ubuntu upgrade emotions" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CkMHQH0yfCp7ImA9WB9RF04.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2466997398386507013</id><published>2007-10-18T21:19:00.001+04:00</published><updated>2007-10-18T22:00:31.394+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-18T22:00:31.394+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="development" /><title>Хочу учиться! :-)</title><content type="html">&lt;div style="text-align: justify;"&gt;Сейчас есть необходимость, возможность и большой интерес пройти качественное обучение по архитектуре ПО. Например, отличным вариантом был бы курс &lt;a href="http://www.tekama.com/index.php?page=126"&gt;"Архитектура сложных систем"&lt;/a&gt;. Судя по  описанию, он предполагает достижение в процессе обучения следующих целей:&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Научить индентифицировать сложные программные системы&lt;/li&gt;&lt;li&gt;Представить методы преодоления сложности системы в ходе разработки ее архитектуры (декомпозиция, выделение иерархий и др.)&lt;/li&gt;&lt;li&gt;Дать навык разработки архитектур сложных систем&lt;/li&gt;&lt;li&gt;Дать возможность освоить объектно-ориентированный подход к разработке архитектур сложных систем&lt;/li&gt;&lt;li&gt;Научить выделять, разрабатывать и применять паттерны&lt;/li&gt;&lt;li&gt;Познакомить с основными языками описания архитектур и средами разработки&lt;/li&gt;&lt;li&gt;Дать знания об Model-Driven Architecture&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Но как оказалось, этот курс находится сейчас только в разработке, и сроки его "доступности" пока неясны. :-(
Ничего похожего у меня найти не удаётся. Поэтому пока в ближайших планах - быть на &lt;a href="http://www.secr.ru/"&gt;SEC(R) 2007&lt;/a&gt;. С огромным удовольствием посещу семинар &lt;a href="http://www.secr.ru/?pageid=4460"&gt;Rick Kazman, "Analysis and Management of Software Architectures: Design it Right, Build it Right"&lt;/a&gt;, ведь на практическом семинаре автора книги &lt;a href="http://www.ozon.ru/context/detail/id/2456415/?partner=brighteyed"&gt;Архитектура программного обеспечения на практике&lt;/a&gt; быть, на мой взгляд, обязательно стоит!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2466997398386507013?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=VouEfaEsaK0:LMKcWXGTybo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=VouEfaEsaK0:LMKcWXGTybo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=VouEfaEsaK0:LMKcWXGTybo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/VouEfaEsaK0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2466997398386507013/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2466997398386507013" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2466997398386507013?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2466997398386507013?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/10/blog-post.html" title="Хочу учиться! :-)" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;DUAMQ3syfCp7ImA9WB9REkQ.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-7355765587144786825</id><published>2007-10-13T21:39:00.000+04:00</published><updated>2007-10-13T21:49:42.594+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-13T21:49:42.594+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="intel" /><title>Multicore – Quadcore + beyond! Get ready for it</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.iss-software-seminar.com/moskau.php"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BOxdXX3Rv2g/RxEESOwn1YI/AAAAAAAAAHU/GpiSuIEddP0/s400/iss.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5120878962543154562" /&gt;&lt;/a&gt;Буквально одной строкой: планирую там быть.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-7355765587144786825?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=CdBCVvn2aC8:Jnvs8VjfJxk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=CdBCVvn2aC8:Jnvs8VjfJxk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=CdBCVvn2aC8:Jnvs8VjfJxk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/CdBCVvn2aC8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/7355765587144786825/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=7355765587144786825" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/7355765587144786825?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/7355765587144786825?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/10/multicore-quadcore-beyond-get-ready-for.html" title="Multicore – Quadcore + beyond! Get ready for it" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_BOxdXX3Rv2g/RxEESOwn1YI/AAAAAAAAAHU/GpiSuIEddP0/s72-c/iss.jpeg" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;A0UNRX47eCp7ImA9WB9SEEU.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-544231221007174091</id><published>2007-09-29T20:52:00.000+04:00</published><updated>2007-09-29T22:08:14.000+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-29T22:08:14.000+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><title>UTF-16 test</title><content type="html">&lt;div style="text-align: justify;"&gt;Тут в порядке развлечения решил я посмотреть, как обстоят дела у Windows-приложений, поддерживающих Unicode, с обработкой символов из дополнительных плоскостей. Смотрел в основном Windows-приложения, т.к. в привычный Windows-программистам двухбайтный &lt;tt&gt;wchar_t&lt;/tt&gt; помещаются только символы базовой плоскости. В этом случае корректная работа с surrogate symbols требует специальных телодвижений.
Первым делом сделал небольшой текстовый файл, содержащий &lt;b&gt;ОДИН&lt;/b&gt; символ U+00010000:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OC-wn1SI/AAAAAAAAAGk/yytCoykCNTs/s1600-h/testfile.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OC-wn1SI/AAAAAAAAAGk/yytCoykCNTs/s400/testfile.png" alt="" id="BLOGGER_PHOTO_ID_5115682408597280034" border="0" /&gt;&lt;/a&gt;
Что получилось? Текстовые процессоры оказалось проверять не интересно - поддерживают, ведь им положено быть серьёзными :-) Word, OpenOffice.org Writer - отобразили содержимое корректно, нарисовав по одному квадратику.
Как и ожидалось, простенький Блокнот поддерживает лишь UCS-2:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OS-wn1TI/AAAAAAAAAGs/_6GTYxHzqHQ/s1600-h/notepad.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OS-wn1TI/AAAAAAAAAGs/_6GTYxHzqHQ/s400/notepad.png" alt="" id="BLOGGER_PHOTO_ID_5115682683475186994" border="0" /&gt;&lt;/a&gt;
Тут простота внешняя оказалась простотой внутренней (видимо, разработчики решили, что незачем возиться с surrogate symbols ;-) Кто пользуется Блокнотом ничего же не заметит! ;-) ) Неожиданностью было, что и &lt;a href="http://www.flos-freeware.ch/"&gt;Notepad2&lt;/a&gt; и &lt;a href="http://www.scintilla.org/SciTE.html"&gt;SciTE&lt;/a&gt; в этом смысле ничуть не лучше:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6Oe-wn1UI/AAAAAAAAAG0/E3hNjoVRV9Y/s1600-h/notepad2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6Oe-wn1UI/AAAAAAAAAG0/E3hNjoVRV9Y/s400/notepad2.png" alt="" id="BLOGGER_PHOTO_ID_5115682889633617218" border="0" /&gt;&lt;/a&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OnOwn1VI/AAAAAAAAAG8/OaFtKg0ZtIU/s1600-h/scite.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OnOwn1VI/AAAAAAAAAG8/OaFtKg0ZtIU/s400/scite.png" alt="" id="BLOGGER_PHOTO_ID_5115683031367538002" border="0" /&gt;&lt;/a&gt;
Ну и для красоты приведу правильное отображение при открытии файла в OpenOffice.org Writer:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_BOxdXX3Rv2g/Rv6QDOwn1WI/AAAAAAAAAHE/Uny6FvlrM7Y/s1600-h/writer.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_BOxdXX3Rv2g/Rv6QDOwn1WI/AAAAAAAAAHE/Uny6FvlrM7Y/s400/writer.png" alt="" id="BLOGGER_PHOTO_ID_5115684611915502946" border="0" /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-544231221007174091?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=1m_xnMDq5NI:zN2lawHiO8w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=1m_xnMDq5NI:zN2lawHiO8w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=1m_xnMDq5NI:zN2lawHiO8w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/1m_xnMDq5NI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/544231221007174091/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=544231221007174091" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/544231221007174091?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/544231221007174091?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/09/utf-16-test.html" title="UTF-16 test" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_BOxdXX3Rv2g/Rv6OC-wn1SI/AAAAAAAAAGk/yytCoykCNTs/s72-c/testfile.png" height="72" width="72" /><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;Dk8MQ346fip7ImA9WB9TFkg.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-354574343389411483</id><published>2007-09-20T21:41:00.000+04:00</published><updated>2007-09-24T21:28:02.016+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-24T21:28:02.016+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="stl" /><title>Standard file streams and std::locale. Answer</title><content type="html">&lt;div style="text-align: justify;"&gt;Сегодняший пост - обещанное объяснение &lt;a href="http://brightestbear.blogspot.com/2007/09/standard-file-streams-and-stdlocale.html"&gt;поведения файловых потоков, работающих с &lt;tt&gt;wchar_t&lt;/tt&gt;&lt;/a&gt;.&lt;br /&gt;
В качестве исходных данных, объясняющих логику работы, приведу два факта:&lt;ol&gt;&lt;li&gt;Стандартный поток не должен привязываться к определённому формату записи, иначе он не будет являться стандартным. Т.е. стандартом языка не должно накладываться никаких ограничений на представление символов в файле.&lt;/li&gt;&lt;li&gt;Для программной манипуляции как с отдельными символами так и строками было бы очень удобно, чтобы все символы в памяти были одного размера&lt;/li&gt;&lt;/ol&gt;Как этот вопрос решается в &lt;a href="http://www.kuzbass.ru/docs/isocpp/lib-iostreams.html#lib.file.streams"&gt;стандарте&lt;/a&gt;? Приведу пару цитат:&lt;blockquote&gt;A File provides &lt;b&gt;byte&lt;/b&gt; sequences. So the &lt;tt&gt;streambuf&lt;/tt&gt; (or its derived classes) treats a file as the external source/sink byte sequence... (27.8.1)&lt;/blockquote&gt;&lt;blockquote&gt;In order to support file I/O and multibyte/wide character conversion, conversions are performed using members of a &lt;b&gt;facet&lt;/b&gt;, referred to as &lt;tt&gt;a_codecvt&lt;/tt&gt;... (27.8.1.1)&lt;/blockquote&gt;Итак, что же получается? Файл рассматривается как последовательность &lt;tt&gt;char&lt;/tt&gt;. Для выполнения конвертации из файлового представления в представление в памяти (т.е. из &lt;tt&gt;char&lt;/tt&gt; в &lt;tt&gt;wchar_t&lt;/tt&gt; и наоборот) используется специальный объект-фасет (о фасетах как-нибудь в другой раз), производный от класса &lt;tt&gt;std::codecvt&lt;/tt&gt;, реализующий  необходимые функции преобразования (в частности, &lt;tt&gt;do_in&lt;/tt&gt; и &lt;tt&gt;do_out&lt;/tt&gt;). Для того, чтобы фасет начал работать, его надо задать локали, используемой потоком. Вот и вся основная теория! :-).&lt;br /&gt;
Теперь надо пояснить на примере. Вот пример фасета для записи/чтения файлов в UTF-16 (взято из статьи &lt;a href="http://www.ddj.com/cpp/184403638"&gt;P.J. Plauger "Unicode Files"&lt;/a&gt;)
&lt;pre&gt;&lt;code&gt;class my_codecvt : public codecvt&amp;lt;wchar_t, char, mbstate_t&amp;gt;&lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;  typedef wchar_t   _E;&lt;br /&gt;  typedef char      _To;&lt;br /&gt;  typedef mbstate_t _St;&lt;br /&gt;&lt;br /&gt;  explicit my_codecvt( size_t _R = 0 )&lt;br /&gt;    :  codecvt&amp;lt;wchar_t, char, mbstate_t&amp;gt;( _R )&lt;br /&gt;  {&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;protected:&lt;br /&gt;  virtual result do_in( _St&amp;amp; _State, const _To *_F1, const _To *_L1, const _To *&amp;amp; _Mid1,&lt;br /&gt;                        _E *_F2, _E *_L2, _E *&amp;amp; _Mid2 ) const&lt;br /&gt;  {&lt;br /&gt;    _Mid1 = _F1,&lt;br /&gt;    _Mid2 = _F2;&lt;br /&gt;    _St _Mystate = _State;&lt;br /&gt;    result _Ans  = ok;&lt;br /&gt;&lt;br /&gt;    for ( ; ; )&lt;br /&gt;      if ( _Mid1 == _L1 || _Mid2 == _L2 )&lt;br /&gt;        break;&lt;br /&gt;      else if ( _Mid1 + 1 == _L1 )&lt;br /&gt;      {&lt;br /&gt;        _Ans = partial;&lt;br /&gt;        break;&lt;br /&gt;      }&lt;br /&gt;      else if ( _Mystate == 0 )&lt;br /&gt;      {&lt;br /&gt;        *_Mid2  = *_Mid1++ &amp;amp; 0xff;&lt;br /&gt;        *_Mid2 |= *_Mid1++ &amp;lt;&amp;lt; 8;&lt;br /&gt;&lt;br /&gt;        if ( *_Mid2 == 0xfffe )&lt;br /&gt;          _Ans = partial;&lt;br /&gt;        else if ( *_Mid2 == 0xfeff )&lt;br /&gt;        {&lt;br /&gt;          _Ans = partial;&lt;br /&gt;          _Mystate = 1; &lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;          ++_Mid2;&lt;br /&gt;          _Ans = ok;&lt;br /&gt;          break;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;      else&lt;br /&gt;      {&lt;br /&gt;        *_Mid2  = *_Mid1++ &amp;lt;&amp;lt; 8;&lt;br /&gt;        *_Mid2 |= *_Mid1++ &amp;amp; 0xff;&lt;br /&gt;&lt;br /&gt;        if ( *_Mid2 == 0xfffe )&lt;br /&gt;          _Ans = partial;&lt;br /&gt;        else if ( *_Mid2 == 0xfeff )&lt;br /&gt;        {&lt;br /&gt;          _Ans = partial;&lt;br /&gt;          _Mystate = 0; &lt;br /&gt;        }&lt;br /&gt;        else&lt;br /&gt;        {&lt;br /&gt;          ++_Mid2;&lt;br /&gt;          _Ans = ok;&lt;br /&gt;          break;&lt;br /&gt;        }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    if ( _Ans == partial )&lt;br /&gt;      _Mid1 = _F1, _Mid2 = _F2;&lt;br /&gt;&lt;br /&gt;    _State = _Mystate;&lt;br /&gt;&lt;br /&gt;    return _Ans; &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  virtual result do_out( _St&amp;amp; _State, const _E *_F1, const _E *_L1, const _E *&amp;amp; _Mid1, &lt;br /&gt;                         _To *_F2, _To *_L2, _To *&amp;amp; _Mid2 ) const&lt;br /&gt;  {&lt;br /&gt;    _Mid1 = _F1, _Mid2 = _F2;&lt;br /&gt;&lt;br /&gt;    if ( _Mid1 == _L1 || _Mid2 == _L2 )&lt;br /&gt;      return ok;&lt;br /&gt;    else if ( _Mid2 + 1 == _L2 )&lt;br /&gt;      return partial;&lt;br /&gt;    else if ( *_Mid1 == 0xfffe )&lt;br /&gt;    {&lt;br /&gt;      _State = 0;&lt;br /&gt;      ++_Mid1;&lt;br /&gt;      *_Mid2++ = 0xfe;&lt;br /&gt;      *_Mid2++ = 0xff;&lt;br /&gt;&lt;br /&gt;      return ok;&lt;br /&gt;    }&lt;br /&gt;    else if ( *_Mid1 == 0xfeff )&lt;br /&gt;    {&lt;br /&gt;      _State = 1;&lt;br /&gt;      ++_Mid1;&lt;br /&gt;      *_Mid2++ = 0xff;&lt;br /&gt;      *_Mid2++ = 0xfe;&lt;br /&gt;&lt;br /&gt;      return ok; &lt;br /&gt;    }&lt;br /&gt;    else if ( _State == 0 )&lt;br /&gt;    {&lt;br /&gt;      *_Mid2++ = (unsigned char)*_Mid1;&lt;br /&gt;      *_Mid2++ = (unsigned char)(*_Mid1++ &amp;gt;&amp;gt; 8);&lt;br /&gt;&lt;br /&gt;      return ok;&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;    {&lt;br /&gt;      *_Mid2++ = (unsigned char)(*_Mid1 &amp;gt;&amp;gt; 8);&lt;br /&gt;      *_Mid2++ = (unsigned char)*_Mid1++;&lt;br /&gt;&lt;br /&gt;      return ok;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  virtual result do_unshift( _St&amp;amp; _State, _To *_F2, _To *_L2, _To *&amp;amp; _Mid2 ) const&lt;br /&gt;  {&lt;br /&gt;    return ok;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  virtual int do_length( _St&amp;amp; _State, const _To *_F1, const _To *_L1, size_t _N2 ) const _THROW0()&lt;br /&gt;  {&lt;br /&gt;    return ((int)(_L1 - _F1) / 2); &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  virtual bool do_always_noconv() const _THROW0()&lt;br /&gt;  {&lt;br /&gt;    return false;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  virtual int do_max_length() const _THROW0()&lt;br /&gt;  {&lt;br /&gt;    return 2; &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  virtual int do_encoding() const _THROW0()&lt;br /&gt;  {&lt;br /&gt;    return 0;&lt;br /&gt;  }&lt;br /&gt;};&lt;/code&gt;&lt;/pre&gt;
Тогда код, написанный в &lt;a href="http://brightestbear.blogspot.com/2007/09/standard-file-streams-and-stdlocale.html"&gt;прошлый раз&lt;/a&gt;, может выглядеть, скажем, так:
&lt;pre&gt;&lt;code&gt;#include &amp;lt;fstream&amp;gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;  std::wofstream file;&lt;br /&gt;  &lt;br /&gt;  // Создать новую локаль на основе локали потока с нашим фасетом и&lt;br /&gt;  //  задать её файловому потоку&lt;br /&gt;  file.imbue( std::locale(file.getloc(), new my_codecvt) );&lt;br /&gt;&lt;br /&gt;  // Теперь можно открывать файл и осуществлять вывод&lt;br /&gt;  // Байт в файле будет шесть! :-) Правда для корректности нужно бы было&lt;br /&gt;  // записать туда ещё символ U+FEFF.&lt;br /&gt;  file.open( "output" );&lt;br /&gt;  file &amp;lt;&amp;lt; L"АБВ";&lt;br /&gt; &lt;br /&gt;  return 0;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;
Поток абстрагирован от способа записи в файл. Разве не красиво? Дополнительную информацию можно посмотреть в уже упоминавшейся мной &lt;a href="http://www.ddj.com/cpp/184403638"&gt;статье&lt;/a&gt;. Очень интересно посмотреть  в Google Groups на удивление людей, впервые с этим столкнувшихся ;-). Подробно о std::locale и фасетах рассказывается в приложении "Локализация" книги &lt;a href="http://www.ozon.ru/context/detail/id/85559/?partner=brighteyed"&gt;Б. Страуструпа - Язык программирования C++&lt;/a&gt;.&lt;br /&gt;
P.S.: Постарался написать кратко, но изложив самое главное. Если нужно, готов расширить пост, или написать дополнительный...&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-354574343389411483?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=3BxHAfXZd4M:2tIai2HrSIY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=3BxHAfXZd4M:2tIai2HrSIY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=3BxHAfXZd4M:2tIai2HrSIY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/3BxHAfXZd4M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/354574343389411483/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=354574343389411483" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/354574343389411483?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/354574343389411483?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/09/standard-file-streams-and-stdlocale_20.html" title="Standard file streams and std::locale. Answer" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;CE8BQng6eip7ImA9WB5aGUk.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-7004113386476188163</id><published>2007-09-15T10:37:00.000+04:00</published><updated>2007-09-16T15:40:53.612+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-16T15:40:53.612+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="stl" /><title>Standard file streams and std::locale</title><content type="html">&lt;div style="text-align: justify;"&gt;За последний месяц несколько раз столкнулся с тем, что полной неожиданностью для части программистов оказывается один казалось бы простой вопрос. Есть код, производящий вывод в файловый поток (хотя, можно было бы задать похожий вопрос и по чтению из потока):
&lt;pre&gt;&lt;code&gt;#include &amp;lt;fstream&amp;gt;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;  std::wofstream file( "output" );&lt;br /&gt;  file &amp;lt;&amp;lt; L"АБВ";&lt;br /&gt; &lt;br /&gt;  return 0;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;
Вопрос ну о-о-очень простой. Сколько байт будет записано в файл? Просто, правда? ;-). В какой кодировке происходит запись: UTF-8? UTF-16? выполняется переконвертация в строку char, исходя из какой-то кодовой страницы? А можно ли выполнить запись в какой-нибудь *моей_любимой_кодировке*?&lt;br /&gt;Оставлю пока этот вопрос без ответа на несколько дней: сейчас совсем нет времени на более подробное объяснение. В середине недели обязательно напишу вторую часть поста с описанием взаимодействия стандартных потоков с выставленной локалью (это была маленькая наводка на ответ ;-) )
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-7004113386476188163?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Cn__S5lcYcU:2MQbTVWJcvc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=Cn__S5lcYcU:2MQbTVWJcvc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=Cn__S5lcYcU:2MQbTVWJcvc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/Cn__S5lcYcU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/7004113386476188163/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=7004113386476188163" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/7004113386476188163?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/7004113386476188163?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/09/standard-file-streams-and-stdlocale.html" title="Standard file streams and std::locale" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;C0cHQHk5fSp7ImA9WB5aEko.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-8970657237885317460</id><published>2007-09-08T20:33:00.000+04:00</published><updated>2007-09-08T21:03:51.725+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-09-08T21:03:51.725+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="emotions" /><title>Широка страна моя...</title><content type="html">&lt;div style="text-align: justify;"&gt;На "&lt;a href="http://www.echo.msk.ru/"&gt;Эхе Москвы&lt;/a&gt;" выкладывают в звуке &lt;a href="http://www.echo.msk.ru/sound.html"&gt;большинство передач&lt;/a&gt;, что достаточно удобно: я например, регулярно слушаю три-четыре программы по-дороге на работу, просто покидав предварительно mp3-файлы в телефон.
Две недели назад весь эфир автомобильной передачи "&lt;a href="http://www.echo.msk.ru/programs/parking/audio.html"&gt;Парковка&lt;/a&gt;" был посвящён пробегу машин Skoda из Москвы до самого Владивостока  (обратно машины возвращались на самолёте :-) )
Ух.. Никак я себе не представлял, что всё НАСТОЛЬКО жутко. Очень рекомендую прослушать &lt;a href="http://www.echo.msk.ru/programs/parking/54330/"&gt;этот подкаст&lt;/a&gt;. Тайга, исключительно китайское радио, выправляемые кувалдой колёсные диски...

P.S.: После прослушивания большинство программ удаляю. Эту же - оставлю!

&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-8970657237885317460?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=bCBoBQYBuVk:hmcCB0805HI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=bCBoBQYBuVk:hmcCB0805HI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=bCBoBQYBuVk:hmcCB0805HI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/bCBoBQYBuVk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/8970657237885317460/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=8970657237885317460" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/8970657237885317460?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/8970657237885317460?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/09/blog-post.html" title="Широка страна моя..." /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;DEABQ38-fyp7ImA9WB5UEE8.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-12246842030222670</id><published>2007-08-13T21:31:00.000+04:00</published><updated>2007-08-13T21:39:12.157+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-13T21:39:12.157+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="emotions" /><category scheme="http://www.blogger.com/atom/ns#" term="lifestyle" /><category scheme="http://www.blogger.com/atom/ns#" term="музыка" /><title>Мила Йовович поёт!</title><content type="html">&lt;a href="http://ufonaut.livejournal.com/30748.html"&gt;Нашёл&lt;/a&gt; совершенно случайно. Очень впечатлила и игра на гитаре, и пение:
&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/QVq1xm3sr5Y"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/QVq1xm3sr5Y" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-12246842030222670?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=-jNKqylb5bw:0npZlh6qpLU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=-jNKqylb5bw:0npZlh6qpLU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=-jNKqylb5bw:0npZlh6qpLU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/-jNKqylb5bw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/12246842030222670/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=12246842030222670" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/12246842030222670?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/12246842030222670?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/08/blog-post_13.html" title="Мила Йовович поёт!" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry><entry gd:etag="W/&quot;D0UHRHg7eyp7ImA9WB5VGE8.&quot;"><id>tag:blogger.com,1999:blog-2098856156800578069.post-2199259831781966683</id><published>2007-08-11T11:32:00.000+04:00</published><updated>2007-08-11T13:40:35.603+04:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-11T13:40:35.603+04:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="c++" /><category scheme="http://www.blogger.com/atom/ns#" term="stl" /><title>Nifty Counter</title><content type="html">&lt;div style="text-align: justify;"&gt;Представьте, что есть глобальный объект класса &lt;tt&gt;Foo&lt;/tt&gt;, использующий в своём конструкторе/деструкторе скажем, вывод в &lt;tt&gt;std::cout&lt;/tt&gt;&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;&lt;br /&gt;class Foo &lt;br /&gt;{&lt;br /&gt;public:&lt;br /&gt;   Foo() { std::cout &amp;lt;&amp;lt; "Foo::Foo";  }&lt;br /&gt;  ~Foo() { std::cout &amp;lt;&amp;lt; "Foo::~Foo"; }&lt;br /&gt;};&lt;br /&gt;  &lt;br /&gt;Foo foo;&lt;br /&gt;&lt;br /&gt;int main()&lt;br /&gt;{&lt;br /&gt;  return 0;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Безопасен ли этот код? Ведь &lt;tt&gt;cin/wcin, cout/wcout, cerr/wcerr, clog/wclog&lt;/tt&gt; - глобальные объекты. Гарантируется ли, что эти потоки инициализируются прежде, чем будут использоваться, ведь порядок конструирования объектов, определённых в различных единицах трансляции не определён?&lt;br /&gt;
Для этой цели имеется класс &lt;tt&gt;std::ios_base::Init&lt;/tt&gt;, который в соответстствии со &lt;a href="http://www.kuzbass.ru/docs/isocpp/lib-iostreams.html"&gt;стандартом&lt;/a&gt; предусмотрен как раз для этой цели [27.3]:&lt;br /&gt;
&lt;blockquote&gt;The objects are constructed, and the associations are established at some time prior to or during first time an object of &lt;tt&gt;class basic_ios&amp;lt;charT, traits&amp;gt;::Init&lt;/tt&gt; is constructed, and in any case before the body of main begins execution&lt;/blockquote&gt;
Осталось только уметь создавать объект &lt;tt&gt;std::ios_base::Init&lt;/tt&gt; до первого использования ;-) Реализация может воспользоваться, например трюком, который называется &lt;a href ="http://en.wikibooks.org/wiki/More_C++_Idioms/Nifty_Counter"&gt;Nifty Counter&lt;/a&gt;. Выглядит это примерно следующим образом:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;class ios_base::Init&lt;br /&gt;{&lt;br /&gt;private:&lt;br /&gt;  static int count;&lt;br /&gt;&lt;br /&gt;public:&lt;br /&gt;   Init();&lt;br /&gt;  ~Init();&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;namespace&lt;br /&gt;{&lt;br /&gt;  // Один объект на единицу трансляции с директивой #include &amp;lt;iostream&amp;gt;&lt;br /&gt;  ios_base::Init __ioinit;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// В каком-нибудь .cpp&lt;br /&gt;int ios_base::count = -1;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Конструктор и деструктор ios_base::Init при этом производят необходимую инициализацию/деинициализацию:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;ios_base::Init::Init()&lt;br /&gt;{&lt;br /&gt;  if ( ++count == 0 )&lt;br /&gt;  {&lt;br /&gt;    // Инициализация&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ios_base::Init::~Init()&lt;br /&gt;{&lt;br /&gt;  if ( --count == -1 )&lt;br /&gt;  {&lt;br /&gt;    // Денициализация&lt;br /&gt;  }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Такой подход не очень рационален. Ведь если в приложении есть пара сотен cpp-файлов c директивой &lt;tt&gt;#include &amp;lt;iostream&amp;gt;&lt;/tt&gt;, то вся эта толпа вспомогательных объектов будет создаваться каждый раз при запуске приложения. Поэтому, например, в реализации Microsoft Visual Studio 2005 объекты стандартных потоков создаются и инициализируются в &lt;tt&gt;MSVCP80.DLL&lt;/tt&gt;, т.е. до того, как выполняется конструирование глобальных объектов в основном модуле. Типичный инициализирующий код можно посмотреть в файле &lt;tt&gt;cout.cpp&lt;/tt&gt;. Заметьте, у файла расширение .cpp - инициализирующий глобальный объект будет единственный!&lt;br /&gt;&lt;br /&gt;
Если обобщить, то такая полезная и интересная штука как Nifty Counter может использоваться в частности для того, чтобы гарантированно инициализировать статические данные какого-то класса до первого использования в коде объектов этого класса.&lt;br /&gt;
Ссылка в тему: &lt;a href="http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/f2c587af5d9c236/e5ceaa0cd963d2d5"&gt;дискуссия&lt;/a&gt; в Google Groups&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2098856156800578069-2199259831781966683?l=brightestbear.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=mkPdWf7U_pY:iL957rb29iU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/brightestbear?a=mkPdWf7U_pY:iL957rb29iU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/brightestbear?i=mkPdWf7U_pY:iL957rb29iU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/brightestbear/~4/mkPdWf7U_pY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://brightestbear.blogspot.com/feeds/2199259831781966683/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=2098856156800578069&amp;postID=2199259831781966683" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2199259831781966683?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/2098856156800578069/posts/default/2199259831781966683?v=2" /><link rel="alternate" type="text/html" href="http://brightestbear.blogspot.com/2007/08/nifty-counter-trick.html" title="Nifty Counter" /><author><name>Сергей Кондриков</name><uri>http://www.blogger.com/profile/09360737142249654777</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/-e_UUzu5exQ0/ToL81-myrcI/AAAAAAAAAW8/lSPIv1mT5Qs/s1600/592e5fbc32e35c1109fd6bc6cd651af9%253Fs%253D250" /></author><thr:total>0</thr:total></entry></feed>

