<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/atom10russianfull.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0"><id>tag:blogger.com,1999:blog-5092972944722879737</id><updated>2008-07-23T17:06:40.154+04:00</updated><title type="text">Stump's Workshop</title><link rel="alternate" type="text/html" href="http://stump-workshop.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default?start-index=26&amp;max-results=25" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>210</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><link rel="self" href="http://feeds.feedburner.com/StumpsWorkshop" type="application/atom+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.rojo.com/add-subscription?resource=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://blog.rojo.com/RojoWideRed.gif">Subscribe with Rojo</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/StumpsWorkshop" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://my.feedlounge.com/external/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://static.feedlounge.com/buttons/subscribe_0.gif">Subscribe with FeedLounge</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FStumpsWorkshop" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-6677275536648745515</id><published>2008-07-18T09:42:00.002+04:00</published><updated>2008-07-18T09:49:54.762+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><title type="text">А если бы у него был компьютер...</title><content type="html">IT-шникам свойственно преувеличивать значение своих технологий в бизнесе и в жизни. Вот хороший анекдот в тему:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;em&gt;Мужик приходит устраиваться дворником в компанию Microsoft.&lt;br /&gt;&lt;br /&gt;Менеджер отдела кадров сначала, задает ему несколько вопросов, потом проводит небольшой тест (предлагает подмести часть территории) и наконец обявляет решение:&lt;br /&gt;— Вы приняты, оставьте ваш электронный адрес, чтобы мы могли вам сообщить в какое место и в какой день вам нужно будет в первый раз прийти на работу.&lt;br /&gt;— Но у меня и компьютера-то нет, — растерянно отвечает мужик, — не то что электронного адреса.&lt;br /&gt;— В таком случае мы не можем взять вас на работу, поскольку виртуально вы не существуете.&lt;br /&gt;Мужик выходит грустный, не зная что делать, когда в кармане осталось всего 10 долларов. Однако тут ему в голову пришла мысль: он заходит на рынок и покупает 10 кг помидоров.&lt;br /&gt;&lt;br /&gt;Затем он начинает ходить по домам и предлагать товар, и меньше чем за 2 часа ему удается удвоить капитал. После того как он повторил то же самое еще 3 раза, у него в кармане было уже 160 баксов. И тут он понимает, что с такими доходами вполне можно жить и без работы! Каждое утро он выходит из дома все раньше и возвращается все позднее, каждый день удваивая, а то и утраивая капитал.&lt;br /&gt;&lt;br /&gt;Через какое-то время он покупает машину, затем грузовик, а еще через некоторое время открывает фирму по доставке товаров населению.&lt;br /&gt;&lt;br /&gt;Спустя 5 лет он уже является владельцем крупной сети супермаркетов.&lt;br /&gt;&lt;br /&gt;И тут, задумавшись о будущем, он вдруг решил застраховать свою жизнь и жизнь всей своей семьи.&lt;br /&gt;&lt;br /&gt;После переговоров со страховым агентом тот просит его оставить электронный адрес, на который можно было бы отправить наиболее выгодное предложение, на что коммерсант, как и несколько лет назад, отвечает, что у него нет ни электронного адреса, ни даже компьютера.&lt;br /&gt;— Это удивительно, — недоумевает страховой агент, — у вас такой крупный бизнес и нет электронного адреса! Вы только представьте себе, кем бы вы стали, если бы у вас был компьютер!&lt;br /&gt;Поразмыслив, коммерсант отвечает:&lt;br /&gt;— Я бы стал дворником компании Microsoft.&lt;/em&gt;&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=S1mvaJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=S1mvaJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=VclXqJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=VclXqJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=aHEi2J"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=aHEi2J" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/338723379" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/338723379/blog-post.html" title="А если бы у него был компьютер..." /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=6677275536648745515" title="Комментарии: 4" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/6677275536648745515/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/6677275536648745515" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/6677275536648745515" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/07/blog-post.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-801554694302348508</id><published>2008-07-17T11:28:00.004+04:00</published><updated>2008-07-17T11:55:14.996+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Terrarium 2.0 теперь в исходных кодах!</title><content type="html">Microsoft Windows SDK Blog сообщает что &lt;a href="http://blogs.msdn.com/windowssdk/archive/2008/07/16/net-terrarium-2-0-source-code-now-available.aspx"&gt;.NET Terrarium 2.0 source code now available!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Не многие наверное помнят, что такое Terrarium. Для тех, кто не в курсе  -  была такая сетевая игра для программистов. Microsoft запустила Terrarium вместе с выходом первой версии .Net Framework с целью популяризировать новую платформу и языки программирования (C# и VB.NET) среди программистов. Суть игры состояла в том, что надо было используя Terrarium SDK написать класс (унаследовавшись от базового и реализовав нужные интерфейсы), представляющий собой травоядное или хищное животное. Алгоритм поведения задавался кодом, а характеристики (быстрота, агрессивность, незаметность, скорость размножения и т.п.) задавались посредством нового тогда механизма атрибутов. Класс надо скомпилировать, а полученную сборку загрузить на сервер игры. После этого на сервере создавалось 10 экземпляров животных твоего класса (Reflection!) и они начинали "жить", ползая по игровому полю твоего клиента. Клиент игры представлял собой Windows Forms приложение и соединялся с сервером посредством Remoting. Фишка состояла в том, что при благоприятных условиях, твои животные начинали размножаться, а при неблагоприятных  - дохли :). Кроме того, по игровому полю медленно летал шар-телепорт. Попавшая в него зверюшка телепортировалась случайным образом на другого клиента (опять ремотинг!). Побеждал тот, чья популяция становилась максимальной. В общем, прекрасная штука для знакомства с .Net. Помнится тогда и в категории хищников и у категории травоядных среди победителей были ребята из Питера (они применили свои наработки в теории конечных автоматов).&lt;br /&gt; &lt;br /&gt;Мне же Terrarium, запомнилась тем, что с ее помощью я изучил .Net, фактически круто сменил свою специализацию и устроился на работу .Net разработчиком, имея за плечами в области .Net лишь опыт программирования в Terrarium :)&lt;br /&gt;Такая вот история.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=AYD9jJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=AYD9jJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=LXPqJJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=LXPqJJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=fttLMJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=fttLMJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/337840776" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/337840776/terrarium-20.html" title="Terrarium 2.0 теперь в исходных кодах!" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=801554694302348508" title="Комментарии: 4" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/801554694302348508/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/801554694302348508" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/801554694302348508" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/07/terrarium-20.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-117554729251642454</id><published>2008-07-15T21:40:00.000+04:00</published><updated>2008-07-16T21:40:46.920+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Как работает ManualResetEvent</title><content type="html">Ну вот я вернулся из отпуска и после долгого молчания решил разразиться техническим постом. &lt;br /&gt;Меня уже несколько раз приходилось объяснять принцип работы и использования ManualResetEvent. И вот я решил все это подробно разжевать с примерами кода. &lt;br /&gt;Продвинутых коллег сразу предупреждаю, ничего нового и эксклюзивного здесь не будет, если ManualResetEvent для вас не является белым пятном, то дальше можете не читать.&lt;br /&gt;     &lt;br /&gt;Итак, когда наш код выполняется в одном потоке, инструкции выполняются в определенном программой порядке. Но стоит нам запустить код в нескольких потоках у нас сразу возникает неопределенность в каком порядке выполняются инструкции нашего кода. Рассмотрим простейшим пример.  &lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; Main(&lt;SPAN class="KEYWORD"&gt;string&lt;/SPAN&gt;[] args)&lt;br /&gt;{&lt;br /&gt;    Thread thread = &lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; Thread(&lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; ThreadStart(ParallelWork));&lt;br /&gt;    thread.Start();&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Main:thread work finished"&lt;/SPAN&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; ParallelWork()&lt;br /&gt;{&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:begin work"&lt;/SPAN&gt;);&lt;br /&gt;    Thread.SpinWait(1000);&lt;SPAN class="COMMENT"&gt;// что то полезное делаем тут&lt;/SPAN&gt;&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:end work"&lt;/SPAN&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;В методе Main() мы создаем и запускаем поток, в котором будет выполнен код метода ParallelWork(). Запустив несколько раз этот код мы можем получить на выходе:&lt;br /&gt;&lt;em&gt;Thread:begin work&lt;br /&gt;Thread:end work&lt;br /&gt;Main:thread work finished&lt;/em&gt;&lt;br /&gt;или&lt;br /&gt;&lt;em&gt;Thread:begin work&lt;br /&gt;Main:thread work finished&lt;br /&gt;Thread:end work&lt;/em&gt;&lt;br /&gt;или&lt;br /&gt;&lt;em&gt;Main:thread work finished&lt;br /&gt;Thread:begin work&lt;br /&gt;Thread:end work&lt;/em&gt;&lt;br /&gt;Обычно ничего страшного в этом нет, ведь параллельное исполнение кода именно для этого и задумывалось. Но иногда у нас возникает необходимость синхронизировать исполнение отдельных участков кода в разных потоках. &lt;br /&gt;Если взять наш куцый примерчик, то предположим, мы хотим, чтобы метод Main дождался завершения метода ParallelWork, и только потом завершился сам. Достичь этого можно разными способами. Например, можно объявить булеву переменную флаг, в метод Main вставить цикл проверки этого флага, а в конце метода ParallelWork выставлять флаг в true. Вот так:   &lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;bool&lt;/SPAN&gt; flag = &lt;SPAN class="KEYWORD"&gt;false&lt;/SPAN&gt;;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; Main(&lt;SPAN class="KEYWORD"&gt;string&lt;/SPAN&gt;[] args)&lt;br /&gt;{&lt;br /&gt;    Thread thread = &lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; Thread(&lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; ThreadStart(ParallelWork));&lt;br /&gt;    thread.Start();&lt;br /&gt;    while (!flag) ;&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Main:thread work finished"&lt;/SPAN&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; ParallelWork()&lt;br /&gt;{&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:begin work"&lt;/SPAN&gt;);&lt;br /&gt;    Thread.SpinWait(1000);&lt;SPAN class="COMMENT"&gt;// что то полезное делаем тут&lt;/SPAN&gt;&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:end work"&lt;/SPAN&gt;);&lt;br /&gt;    flag = true;&lt;br /&gt;}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;На выходе получим искомое:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Thread:begin work&lt;br /&gt;Thread:end work&lt;br /&gt;Main:thread work finished&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;за счет того что в методе Main будет молотить холостой цикл while(!flag) ; пока метод ParallelWork() не выставит flag = true. Основной недостаток такого способа синхронизации состоит в том, что холостой цикл очень хорошо грузит процессор. &lt;br /&gt;&lt;br /&gt;Ту же самую задачу можно решить при помощи ManualResetEvent. &lt;br /&gt;Вот так:   &lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; ManualResetEvent sync;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; Main(&lt;SPAN class="KEYWORD"&gt;string&lt;/SPAN&gt;[] args)&lt;br /&gt;{&lt;br /&gt;    sync = &lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; ManualResetEvent(&lt;SPAN class="KEYWORD"&gt;false&lt;/SPAN&gt;); &lt;br /&gt;    Thread thread = &lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; Thread(&lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; ThreadStart(ParallelWork));&lt;br /&gt;    thread.Start();&lt;br /&gt;    sync.WaitOne();&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Main:thread work finished"&lt;/SPAN&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; ParallelWork()&lt;br /&gt;{&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:begin work"&lt;/SPAN&gt;);&lt;br /&gt;    Thread.SpinWait(1000);&lt;SPAN class="COMMENT"&gt;// что то полезное делаем тут&lt;/SPAN&gt;&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:end work"&lt;/SPAN&gt;);&lt;br /&gt;    sync.Set();&lt;br /&gt;}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Как это работает? Очень просто.&lt;br /&gt;У ManualResetEvent есть внутреннее состояние: сигнальное и несигнальное. В сигнальное он переводится методом Set() в несигнальное  - методом Reset(). Также начальное состояние ManualResetEvent можно задать и в конструкторе. В нашем случае мы создаем экземпляр ManualResetEvent  в несигнельном состоянии.&lt;br /&gt;&lt;br /&gt;Самый главный его метод WaitOne(). Когда в коде встречается вызов WaitOne() &lt;strong&gt;исполнение приостанавливается, если  ManualResetEvent в несигнальном состоянии&lt;/strong&gt;. А если в &lt;strong&gt;сигнальном – WaitOne исполняется без задержки&lt;/strong&gt;. На этом и основано его использование. &lt;strong&gt;Мы заставляем код в главном потоке остановиться и ждать на вызове WaitOne(), пока где нибудь в другом потоке не вызовут Set()&lt;/strong&gt;. Вызов Set() как-бы подает сигнал другому потоку (или нескольким), который висит и ждет на вызове WaitOne(), после чего этот поток может продолжить свое исполнение. Т.е. WaitOne() по своему эффекту похож на Thread.Sleep(), но с возможностью разбудить поток в нужный момент из другого потока. &lt;br /&gt;&lt;br /&gt;Благодаря тому, что ManualResetEvent использует synchronization handle операционной системы, &lt;strong&gt;поток ожидающий на вызове WaitOne() действительно приостанавливается, ему не выделяются кванты процессорного времени и он не тормозит исполнение других потоков&lt;/strong&gt;. И это основное отличие от синхронизации с флагом и холостым циклом. Висеть на WaitOne() может не один а несколько потоков, и все они выдут из ожидания при вызове одного Set().  &lt;br /&gt;&lt;br /&gt;Напоследок, хочу упомянуть, что рассматриваемую в примере задачу синхронизации можно решить и без ManualResetEvent, при помощи Thread.Join(), однако стоить заметить, что Thread.Join() использует внутри те же механизмы, что и ManualResetEvent&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;PRE&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; Main(&lt;SPAN class="KEYWORD"&gt;string&lt;/SPAN&gt;[] args)&lt;br /&gt;{&lt;br /&gt;    sync = &lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; ManualResetEvent(&lt;SPAN class="KEYWORD"&gt;false&lt;/SPAN&gt;); &lt;br /&gt;    Thread thread = &lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; Thread(&lt;SPAN class="KEYWORD"&gt;new&lt;/SPAN&gt; ThreadStart(ParallelWork));&lt;br /&gt;    thread.Start();&lt;br /&gt;    thread.Join();&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Main:thread work finished"&lt;/SPAN&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;SPAN class="KEYWORD"&gt;static&lt;/SPAN&gt; &lt;SPAN class="KEYWORD"&gt;void&lt;/SPAN&gt; ParallelWork()&lt;br /&gt;{&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:begin work"&lt;/SPAN&gt;);&lt;br /&gt;    Thread.SpinWait(1000);&lt;SPAN class="COMMENT"&gt;// что то полезное делаем тут&lt;/SPAN&gt;&lt;br /&gt;    Console.WriteLine(&lt;SPAN class="STRING"&gt;"Thread:end work"&lt;/SPAN&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/PRE&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=B1jBzJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=B1jBzJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=KaGHHJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=KaGHHJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=VwekiJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=VwekiJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/337285806" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/337285806/manualresetevent.html" title="Как работает ManualResetEvent" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=117554729251642454" title="Комментарии: 4" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/117554729251642454/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/117554729251642454" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/117554729251642454" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/07/manualresetevent.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-7500540074328939176</id><published>2008-06-19T11:40:00.002+04:00</published><updated>2008-06-19T11:50:41.975+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><title type="text">В помощь разработчикам под MS CRM</title><content type="html">Если вам пришлось разрабатывать решения на основе MS CRM рекомендую &lt;a href="http://ronaldlemmen.blogspot.com/"&gt;блог Ronald Lemmen&lt;/a&gt;. Рональд является MVP как раз в области MS CRM. Помимо того, что в его блоге  есть множество полезных ссылок на другие ресурсы, связанные с CRM, Рональд и сам пишет о многих тонкостях, которых вы не найдете ни в SDK ни в KB. &lt;br /&gt;Мне, к примеру, &lt;a href="http://ronaldlemmen.blogspot.com/2007/01/callout-not-working.html"&gt;он помог&lt;/a&gt; справиться с ошибкой при отладке Callout. Thanks a lot, Ronald!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=uzjtbI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=uzjtbI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=PlxONI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=PlxONI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=dyVrRI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=dyVrRI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/315245357" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/315245357/ms-crm.html" title="В помощь разработчикам под MS CRM" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=7500540074328939176" title="Комментарии: 0" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/7500540074328939176/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/7500540074328939176" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/7500540074328939176" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/06/ms-crm.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-2403642121680441278</id><published>2008-06-06T09:51:00.004+04:00</published><updated>2008-06-06T10:43:24.971+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Surprise! Explicit Enum Cast in C#</title><content type="html">&lt;div align="right"&gt;О сколько нам открытий чудных&lt;/div&gt;&lt;div align="right"&gt;Готовит просвещенья дух.&lt;/div&gt;&lt;div align="right"&gt;(с) А. С. Пушкин&lt;/div&gt;&lt;br /&gt;Как вы думаете, что выдаст на консоль приведенный ниже код?&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;br /&gt;&lt;span class="KEYWORD"&gt;public&lt;/span&gt; &lt;span class="KEYWORD"&gt;enum&lt;/span&gt; Parts&lt;br /&gt;{&lt;br /&gt; Engine = 1,&lt;br /&gt; Wheels,&lt;br /&gt; Brakes&lt;br /&gt;}&lt;br /&gt;&lt;span class="KEYWORD"&gt;static&lt;/span&gt; &lt;span class="KEYWORD"&gt;void&lt;/span&gt; Main(&lt;span class="KEYWORD"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;{&lt;br /&gt; &lt;span class="KEYWORD"&gt;try&lt;/span&gt;&lt;br /&gt; {&lt;br /&gt;  Parts lineItem = (Parts)4;&lt;br /&gt;  Console.WriteLine(lineItem);&lt;br /&gt; }&lt;br /&gt; &lt;span class="KEYWORD"&gt;catch&lt;/span&gt;&lt;br /&gt; {&lt;br /&gt;  Console.WriteLine(&lt;span class="STRING"&gt;"Exception"&lt;/span&gt;);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Не знаю, как вы, а я был убежден, что это будет "Exception". Однако на выходе получаем "4". Кстати, если Console.WriteLine(lineItem) заменить на Console.WriteLine(Enum.GetName(typeof(Parts),lineItem)) получим пустую строку. Вот так засада! Явным приведением можно загнать в enum любое значение underlying типа. Судя по обсуждению на RSDN это стало сюрпризом для многих. &lt;br /&gt;&lt;br /&gt;Оказывается Anders Hejlsberg пишет в книге "The C# Programming Language":&lt;br /&gt;&lt;blockquote&gt;"Each enum type has a corresponding integral type called the underlying type of the enum type. An enum type that does not explicitly declare an underlying type has an underlying type of int. An enum type’s storage format and range of possible values are determined by its underlying type. The set of values that an enum type can take on &lt;strong&gt;is not limited by its enum members&lt;/strong&gt;. In particular, &lt;strong&gt;any value of the underlying type of an enum can be cast to the enum type&lt;/strong&gt; and is a distinct valid value of that enum type."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Указания на такое поведение есть и в стандарте C#, дык только кто-ж это все читает...&lt;br /&gt;Теперь, когда я думаю о том, сколько кода написано в твердой уверенности, что enum не может содержать никаких значений, кроме объявленных, мне становится как-то не по себе. &lt;br /&gt;Надо взять за правило в switch-ах по enum-мам всегда ставить метку default.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=EiVOyI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=EiVOyI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=dfUs7I"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=dfUs7I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=86mRCI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=86mRCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/305893556" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/305893556/surprise-explicit-enum-cast-in-c.html" title="Surprise! Explicit Enum Cast in C#" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=2403642121680441278" title="Комментарии: 5" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/2403642121680441278/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/2403642121680441278" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/2403642121680441278" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/06/surprise-explicit-enum-cast-in-c.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-8438427233719599096</id><published>2008-06-04T21:16:00.004+04:00</published><updated>2008-06-04T21:52:35.177+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><title type="text">DDNA</title><content type="html">Ну какая может быть Силиконовая долина в Дубне, если здесь нет ни одной user group разработчиков, подумал я. Подумал, и решил, настало время собрать группу разработчиков .Net. Поговорил с ребятами  - вроде интерес есть. Мощная аббревиатура в заголовке означает Dubna Dot Net Alliance. &lt;br /&gt;&lt;br /&gt;И вот 29 мая прошла первая встреча Сообщества .Net разработчиков Дубны, организации которой я посвятил практически весь предшествующий месяц. К сожалению из 18 зарегистрировавшихся пришло только 10 человек. Зато среди них были замечены преподаватели университета :). &lt;br /&gt;Конечно пришлось делать доклад, тема довольно размытая "Эволюция C#" была выбрана с явным расчетом завлечь в сети .Net еще не определившиеся юные души. Впрочем, расчет не оправдался, пришли только матерые .Net-чики :) Не все получилось. Хронометраж не выдержал, кое что из интересных фактов не рассказал, и т.д. Еще раз убедился, что для всякого дела недостаточно только знаний, но нужен навык. Презентационные навыки у меня развиты слабо, надо работать в этом направлении. &lt;br /&gt;Второй доклад делал Юра Михеев о новых возможностях SQL 2008. Тут действительно было интересно, Geo-spatial data, и наконец-то, нормальный тип данных для даты и времени - асана!  &lt;br /&gt;&lt;br /&gt;И вот парадокс. Сейчас у нас нет недостатка в людях готовых сделать доклады, но есть явный недостаток в людях, которые составили бы аудиторию.&lt;br /&gt;&lt;br /&gt;Материалы встречи можно найти на сайте &lt;a href="http://dubna.ineta.ru"&gt;dubna.ineta.ru&lt;/a&gt; (По правде, говоря портал ineta.ru настолько глючный, что даже ссылку давать стремно).&lt;br /&gt;  &lt;br /&gt;P.S. Предвижу злобные комментарии по поводу "силиконовой долины", однако упроно продолжаю использовать этот термин. Кре&lt;strong&gt;мниевая&lt;/strong&gt; - слово для русского языка трудновыговариваемое (о!).&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=MkcMtI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=MkcMtI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=6M1lvI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=6M1lvI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=woJ97I"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=woJ97I" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/304709618" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/304709618/ddna.html" title="DDNA" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=8438427233719599096" title="Комментарии: 12" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/8438427233719599096/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/8438427233719599096" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/8438427233719599096" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/06/ddna.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-7922407151455833440</id><published>2008-06-04T15:00:00.004+04:00</published><updated>2008-06-04T15:48:43.602+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="DOTNET" /><title type="text">Набор .Net патологоанатома</title><content type="html">UserDump, WinDbg и sos.dll  - это инструменты которыми .Net разработчики пользуются очень редко. Но если ваша программа замечательно работает у вас, но подло глючит у пользователя или заказчика, то без набора этих инструментов вам не обойтись. &lt;br /&gt;Как ими пользоваться &lt;a href="http://yuryskaletskiy.blogspot.com/2007/09/userdump-debugging-tools-for-windows.html"&gt;рассказывает в своем блоге&lt;/a&gt; Юрий Скалецкий.&lt;br /&gt;Как обнаруживать утечки памяти в .Net  при помощи sos.dll и windbg описано &lt;a href="http://msdn.microsoft.com/en-us/library/ms954591.aspx"&gt;здесь&lt;/a&gt; (во второй половине статьи). &lt;br /&gt;Как снять crash dump при помощи adplus можно прочитать &lt;a href="http://blogs.msdn.com/tom/archive/2008/05/15/asp-net-tips-what-to-gather-to-troubleshoot-part-3a-crash-revisited.aspx"&gt;здесь&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=YiOd4I"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=YiOd4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=Nj1vCI"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=Nj1vCI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=EKHW2I"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=EKHW2I" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/304500131" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/304500131/net.html" title="Набор .Net патологоанатома" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=7922407151455833440" title="Комментарии: 0" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/7922407151455833440/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/7922407151455833440" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/7922407151455833440" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/06/net.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-6759148111429029209</id><published>2008-05-28T10:22:00.004+04:00</published><updated>2008-05-28T11:59:57.109+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><title type="text">Темная сторона силы</title><content type="html">&lt;div align="right"&gt;«Как все плохо: кругом война, смерть, глупость… а мы тут пьём…»&lt;br /&gt;(с) Масяня&lt;/div&gt;&lt;br /&gt;С удовольствием читаю &lt;a href="http://blogs.sun.com/jonathan"&gt;блог Джонатана Шварца&lt;/a&gt; (CEO and President Sun Microsystems, Inc.). На этот раз &lt;a href="http://blogs.sun.com/jonathan_ru/entry/%D0%BF%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B8_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5_%D0%BC%D1%8B"&gt;он размышляет&lt;/a&gt; о той степени открытости и прозрачности информации, которую дает нам Интернет.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;... во всем мире сеть стала важным элементом в общественной жизни людей, и нарастающий вал блогов, электронной почты и данных с цифровых камер и мобильных телефонов обеспечивают все большую прозрачность мира. Мы живем в мире, в котором травмы и триумфы мгновенно становятся видными всем. Солнечный свет не только прекрасно дезинфицирует, но еще и обеспечивает безопасность; ведь невозможно устранить проблемы, о которых ничего не знаешь. Но если вы узнали о проблеме, то даже скромные попытки ее решения, помноженные на потенциал Интернета, могут всё изменить.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Я вот не разделяю оптимизма Джонатана по этому поводу. Посмотреть - да, желающих предостаточно, увидеть катастрофы и смерть в живую, в прямом эфире, пощекотать свои нервы, и ощутить выброс адреналина. А вот помочь решить чьи-то проблемы, да и просто посочувствовать, тут желающих очень не много.&lt;br /&gt;&lt;br /&gt;А с другой стороны, многие люди говорят "Как страшно стало жить, кругом катастрофы, убийства, смерть". Но ведь ничего не изменилось, все это было всегда. Просто раньше, все эти ужасы не доносились до нас в режиме online. &lt;strong&gt;И любой человек мог быть локально счастливым&lt;/strong&gt;, независимо от мировых катаклизмов и чьих-то проблем, а просто в силу того, что ему именно сейчас улыбнулась удача, просто потому что сегодня над твоей головой светит солнце, и цветет черемуха, и поют птицы. Но нет, Интернет, радио и ТВ ест твой мозг: в Китае землетрясение, в Бирме хунта, а в соседнем овраге вчера нашли труп. &lt;br /&gt;&lt;br /&gt;Я не хочу знать про труп. Я хочу сегодня быть счастлив. И глобальная сеть мне в этом не поможет.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=cvyKhH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=cvyKhH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=DxGbPH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=DxGbPH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=1ek03H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=1ek03H" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/299647571" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/299647571/blog-post_28.html" title="Темная сторона силы" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=6759148111429029209" title="Комментарии: 6" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/6759148111429029209/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/6759148111429029209" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/6759148111429029209" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post_28.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-3812768907214405847</id><published>2008-05-26T13:07:00.002+04:00</published><updated>2008-05-26T13:11:56.104+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><title type="text">Ну, надо же!..</title><content type="html">&lt;table style="text-align: justify; width: 510px; background:#FFE493 none repeat scroll 0%; font-size: 11pt;"&gt;&lt;tr&gt;&lt;td&gt;Я проверил свои знания русского языка и получил пятерку.&lt;br&gt;Правильных ответов у вас - 8 из 8. Получите заслуженную оценку и порадуйтесь, что не одиноки: столько же верных ответов дали 7% россиян с вашим уровнем образования*.&lt;br&gt;&lt;img align="center" width="500" height="164" src="http://www.rb.ru/poll/7/img/5.gif"&gt; &lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href="http://www.rb.ru/poll/7/"&gt;Сходи, проверься?&lt;/a&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Тем не менее я делаю очень много ошибок при письме. Это еще раз доказывает, что умение сдавать экзамены, и умение применять знания на практике это две разные вещи. :)&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=XFl1IH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=XFl1IH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=nptpTH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=nptpTH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=r0onUH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=r0onUH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/298259741" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/298259741/blog-post_6989.html" title="Ну, надо же!.." /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=3812768907214405847" title="Комментарии: 6" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/3812768907214405847/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/3812768907214405847" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/3812768907214405847" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post_6989.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-193427729546318087</id><published>2008-05-26T09:34:00.004+04:00</published><updated>2008-05-26T09:52:50.780+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><category scheme="http://www.blogger.com/atom/ns#" term="Practice" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title type="text">Пополнение в семействе копов</title><content type="html">Все наверное знают, что такое FxCop (Microsoft Code Analysis). Если все же кто-то не знает, FxCop - это инструмент, позволяющий проверять выполнение определенных правил кодирования. Теперь в дополнение к нему Microsoft &lt;a href="http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx"&gt;анонсирует&lt;/a&gt; выпуск Microsoft Source Analysis for C# (StyleCop) - инструмента для анализа исходных кодов. &lt;br /&gt;В отличие от FxCop, который анализирует бинарники (точнее MSIL), StyleCop аналазирует исходники на C#. Анализирует на предмет удобства чтения, документированности, отступов и т.п. Всего около 200 правил, в том числе:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;- Layout of elements, statements, expressions, and query clauses &lt;br /&gt;- Placement of curly brackets, parenthesis, square brackets, etc &lt;br /&gt;- Spacing around keywords and operator symbols &lt;br /&gt;- Line spacing &lt;br /&gt;- Placement of method parameters within method declarations or method calls &lt;br /&gt;- Standard ordering of elements within a class &lt;br /&gt;- Formatting of documentation within element headers and file headers &lt;br /&gt;- Naming of elements, fields and variables &lt;br /&gt;- Use of the built-in types &lt;br /&gt;- Use of access modifiers &lt;br /&gt;- Allowed contents of files &lt;br /&gt;- Debugging text&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Загрузить StyleCop можно &lt;a href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sourceanalysis"&gt;отсюда&lt;/a&gt;  &lt;br /&gt;&lt;br /&gt;Сказать по правде, я не отношусь к поклонникам подобного рода инструментов. FxCop использую от случая к случаю, в основном, когда надо быстро выполнить формальное ревью большого количества незнакомого кода, чтобы оценить его общее качество. А на счет StyleCop, так по мне, это не более чем средство окончательно задолбать разработчиков. &lt;br /&gt;А вы как думаете?&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=yxRuPH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=yxRuPH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=5cOWXH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=5cOWXH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=cWyerH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=cWyerH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/298175991" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/298175991/blog-post_26.html" title="Пополнение в семействе копов" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=193427729546318087" title="Комментарии: 11" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/193427729546318087/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/193427729546318087" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/193427729546318087" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post_26.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-5798126432193249958</id><published>2008-05-23T09:42:00.004+04:00</published><updated>2008-05-23T09:55:25.836+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title type="text">И опять про MSDN</title><content type="html">Данила Корнев, новый MSDN Online Program Manager, в &lt;a href="http://blogs.gotdotnet.ru/personal/danielkornev/default.aspx"&gt;своем блоге&lt;/a&gt; &lt;a href="http://blogs.gotdotnet.ru/personal/danielkornev/PermaLink.aspx?guid=a1319f8a-91c5-40cc-a264-05b87571370d"&gt;сообщает&lt;/a&gt; об открытии &lt;a href="http://msdn.microsoft.com/ru-ru/default.aspx"&gt;русского раздела MSDN&lt;/a&gt;. &lt;br /&gt;Буквально на днях я &lt;a href="http://stump-workshop.blogspot.com/2008/05/blog-post_2928.html"&gt;обнаружил&lt;/a&gt; что все мои закладки на статьи MSDN Magazine перестали работать. А теперь у меня появились новые поводы для недовольства, связанные с MSDN, о чем я хотел сделать комментарий в блоге Данилы, но комментарий сохранить не удалось. Поэтому комментирую здесь.&lt;br /&gt;  &lt;br /&gt;Данила, не все так здорово. Например на русскоязычной странице &lt;a href="http://msdn.microsoft.com/ru-ru/aa937802.aspx"&gt;"Центры разработчиков"&lt;/a&gt;  есть ссылка на "Журнал «MSDN Magazine»" и ведет она на английскую страницу MSDN Magazine. Несмотря на то, что существует русская версия. Сейчас на MSDN вообще_нигде_нет_ссылок на русскую версию MSDN Magazine! Зачем его вообще на русский переводят, если прочитать это никто не может.&lt;br /&gt;&lt;br /&gt;Раньше можно было почитать русскую версию документации по .Net Framework 1.1 вот по этой ссылке &lt;a href="http://msdn.microsoft.com/library/rus/default.asp"&gt;http://msdn.microsoft.com/library/rus/default.asp&lt;/a&gt;. Теперь она не работает. &lt;br /&gt;Локализация MSDN Library на русский язык в конце этого года, это здорово. Но зачем ломать то что работает! У тысяч людей есть десятки тысяч закладок на статьи русский MSDN Magazine. С переводом MSDN Magazine на новый URL mapping старые закладки не работают. Ну кто так делает?!!!&lt;br /&gt;На форумах разработчиков есть тысячи ссылок на  русскую версию документации по .Net Framework 1.1. Теперь все ссылки протухли. Что вы там у себя сэкономили, пришибив раздел http://msdn.microsoft.com/library/rus/ ?&lt;br /&gt;У вас вообще есть план миграции при разработке новых версий web ресурсов? Будь новый MSDN хоть каким распрекрасным, но если я испытываю проблемы с поиском информации, которую я раньше без проблем находил по своим закладкам, то я считаю, что это плохая работа.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=dpKCaH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=dpKCaH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=mBYu0H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=mBYu0H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=yScmSH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=yScmSH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/296344184" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/296344184/msdn.html" title="И опять про MSDN" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=5798126432193249958" title="Комментарии: 8" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/5798126432193249958/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/5798126432193249958" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/5798126432193249958" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/msdn.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-682689886367200540</id><published>2008-05-19T16:13:00.002+04:00</published><updated>2008-05-19T16:47:24.872+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><title type="text">Страшная сила кривых рук</title><content type="html">&lt;a href="http://msdn.microsoft.com/en-us/magazine/default.aspx"&gt;MSDN Magazine Online&lt;/a&gt; очень ценный источник информации для разработчиков. С недавних пор он сменил свой look &amp; feel, стал более веб_два_нольным, скжем так. Появились кнопочки для digg, technorati, reddit и т.д., список самых популярных статей и т.д.&lt;br /&gt; &lt;br /&gt;Заодно, легким движением руки, какой то добрый человек, сменил способ формирования URL. Была уменя, к примеру, закладочка вот такого вида http://msdn.microsoft.com/msdnmag/issues/06/11/default.aspx?loc=ru , а теперь сделалась вот такого http://msdn.microsoft.com/ru-ru/magazine/cc135434.aspx Чувствуете разницу? И теперь самое интересное  - &lt;strong&gt;ссылки старого формата не обрабатываются&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;У вас есть закладки на статьи MSDN Magazine? Если есть можете их выкинуть&lt;/strong&gt;. Нет никакого другого способа превратить "issues/06/11/default.aspx?loc=ru" в "cc135434.aspx", кроме как шариться по новому сайту и искать нужную статью, ориентируясь при этом на старый URL. &lt;br /&gt;&lt;br /&gt;У меня таким образом протухли десятки ссылок в том числе и на этом блоге (напр., &lt;a href="http://stump-workshop.blogspot.com/2008/02/wcf.html"&gt;"Подборка материалов по WCF"&lt;/a&gt; протухла почти вся).&lt;br /&gt;&lt;br /&gt;Кстати, о том что у статей MSDN Magazine существует русский перевод вы теперь никогда не узнаете, если не замените в середине URL "en-Us" на "ru-Ru".   &lt;br /&gt;&lt;br /&gt;В общем, спасибо тебе, MSDN Magazine, за заботу. &lt;br /&gt;&lt;br /&gt;P.S. Если бы я сделал такое в своем проекте, мне бы наверное, руки поотрывали...&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=k4MG2H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=k4MG2H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=7U9JaH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=7U9JaH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=FTSgVH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=FTSgVH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/293471617" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/293471617/blog-post_2928.html" title="Страшная сила кривых рук" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=682689886367200540" title="Комментарии: 7" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/682689886367200540/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/682689886367200540" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/682689886367200540" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post_2928.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-4796532938524509408</id><published>2008-05-19T09:41:00.002+04:00</published><updated>2008-05-19T10:13:28.707+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title type="text">Не зьим, так понадкусываю...</title><content type="html">Примерно так можно кратко выразить суть очередного &lt;a href="http://www.microsoft.com/presspass/press/2008/may08/05-18statement.mspx?rss_fdn=Press%20Releases"&gt;заявления Microsoft относительно Yahoo!&lt;/a&gt;.&lt;br /&gt;Microsoft продолжает игру в кошки мышки с Yahoo После отзыва своего предыдущего предложения по поглощению, и последовавшего за ним 15% падения акций Yahoo!, Microsoft вновь возвратилась к теме.  &lt;br /&gt;&lt;br /&gt;Теперь речь идет не о полном поглощении, а возможно, о частичном. Впрочем, Microsoft вполне может снова захотеть съесть Yahoo! целиком, о чем прозрачно намекается в сообщении. &lt;br /&gt;&lt;br /&gt;Скорее всего так и будет. Уж очень серьезные ставки в игре. И речь не столько о рынке online рекламы. Основной доход Microsoft получает с десктоп приложений (Windows + Office), а бурное развитие online альтернатив десктопным приложениям представляют серьезную угрозу. Если MS Office занимает что-то около 90% процентов своего сегмента рынка, то платформа Windows Live далеко не на первых ролях. Поэтому надо любыми средствами скупать площадки online сервисов и их аудиторию. &lt;br /&gt;&lt;br /&gt;Вдруг действительно эти чертовы online applications выстрелят? Станет тогда Microsoft заурядным производителем браузера, БД и сервера приложений, каких сотни. А что мы тогда будем делать? Кто же тогда будет Большим братом, и будет "во всем виноват"? Компания на букву G?&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=aD4NvH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=aD4NvH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=J8xxTH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=J8xxTH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=YGBHAH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=YGBHAH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/293273569" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/293273569/blog-post_19.html" title="Не зьим, так понадкусываю..." /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=4796532938524509408" title="Комментарии: 5" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/4796532938524509408/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/4796532938524509408" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/4796532938524509408" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post_19.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-26398436661550679</id><published>2008-05-15T09:37:00.002+04:00</published><updated>2008-05-15T09:43:24.096+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework" /><title type="text">Entity Framework Breaking Changes. On beta 3 к SP1</title><content type="html">В &lt;a href="http://blogs.msdn.com/adonet/"&gt;ADO.NET team blog&lt;/a&gt; опубликован &lt;a href="http://blogs.msdn.com/adonet/pages/entity-framework-breaking-changes-visual-studio-2008-net-3-5-sp1-beta.aspx"&gt;"Entity Framework Breaking Changes - Visual Studio 2008 &amp; .NET 3.5 SP1 Beta"&lt;/a&gt; список изменений, так сказать, не совместимых с жизнью в Entity Framework по сравнению с beta3.&lt;br /&gt;Я надеюсь, что никто не заюзал EF beta 3 в своих проектах. Иначе я им не завидую.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=mqgvrH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=mqgvrH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=Xu4fqH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=Xu4fqH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=8Smn2H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=8Smn2H" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/290703827" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/290703827/entity-framework-breaking-changes-on.html" title="Entity Framework Breaking Changes. On beta 3 к SP1" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=26398436661550679" title="Комментарии: 8" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/26398436661550679/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/26398436661550679" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/26398436661550679" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/entity-framework-breaking-changes-on.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-1311225762762454431</id><published>2008-05-13T22:26:00.002+04:00</published><updated>2008-05-13T22:40:13.917+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><title type="text">Симпатичный гаджет</title><content type="html">я себе на блог урвал. Висит справа внизу на сайдбаре и называется "Поиск по блогу от Quintura". На нем очень симпатично разбегаются и собираются в кучки ключевые слова. Оказывается самое употребляемое мною слово, это "система". Я подозревал что сильно "системлю", но слава богу что не "концептуально" жирным шрифтом вылезло. &lt;br /&gt;Чтоб заполучить такую штучку от &lt;a href="http://www.quintura.ru/"&gt;Quintura&lt;/a&gt; пришлось повозиться, и пройти все круги их &lt;a href="http://affiliates.quintura.com/partners/?lang=ru"&gt;афилатной программы&lt;/a&gt;.  Потом Gmail отправил их письмо в спам (наверное нутром учуял конкурентов). Но все закончилось благополучно, и теперь я счастливый обладатель эксклюзивного гаджета. &lt;br /&gt;&lt;br /&gt;P.S. Только не спрашивайте зачем мне два поиска по блогу...&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=vKKq6H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=vKKq6H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=sEeQKH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=sEeQKH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=TwxZQH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=TwxZQH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/289632038" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/289632038/blog-post_13.html" title="Симпатичный гаджет" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=1311225762762454431" title="Комментарии: 6" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/1311225762762454431/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/1311225762762454431" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/1311225762762454431" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post_13.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-3112878717918358052</id><published>2008-05-13T09:53:00.003+04:00</published><updated>2008-05-13T12:28:37.548+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><title type="text">Visual Studio 2008 SP1 Beta &amp; .NET 3.5 SP1 Beta</title><content type="html">Вышла бета первого сервиспака VS2008, которая интересна прежде всего тем, что в ее состав включили долгожданный ADO.NET Entity Framework. &lt;br /&gt;Также в состав сервиспака включены пакеты ADO.NET Data Services, ASP.NET Dynamic Data и ряд улучшений для поддержки новых фич SQL Server 2008.     &lt;br /&gt;К сожалению в сервиспак не вошел ASP.NET MVC Framework.&lt;br /&gt; &lt;br /&gt;Ссылка для скачивания &lt;a href="http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx"&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;P.S. Почитал &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx"&gt;Скота Гу&lt;/a&gt;. Все таки кое какие куски от ASP.NET MVC Framework попали в этот сервиспак. В частности ASP.NET Routing Engine (System.Web.Routing)&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=8OtriH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=8OtriH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=tMkfxH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=tMkfxH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=ITczwH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=ITczwH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/289221945" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/289221945/visual-studio-2008-sp1-beta-net-35-sp1.html" title="Visual Studio 2008 SP1 Beta &amp; .NET 3.5 SP1 Beta" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=3112878717918358052" title="Комментарии: 1" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/3112878717918358052/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/3112878717918358052" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/3112878717918358052" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/visual-studio-2008-sp1-beta-net-35-sp1.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-4545048038848233818</id><published>2008-05-12T15:54:00.004+04:00</published><updated>2008-05-12T16:36:46.756+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming" /><category scheme="http://www.blogger.com/atom/ns#" term="Architecture" /><title type="text">Велосипедофобия</title><content type="html">&lt;div align="right"&gt;"Все мосты через преграды, переброшены без нас" (с) В.Высоцкий&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Толкаясь на форумах начал замечать у разработчиков признаки надвигающейся эпидемии этакой "велосипедофобии". Спрашивает человек "Хочу реализовать логирование так-то и так...", а ему в ответ "Зачем изобретать велосипед!!! Есть log4net...", "Чукча не читатель. Чукча писатель. Опять велосипед изобретаешь...". Пишет другой человек статью о способах реализации Persistent Object, а ему в комментах: "Зачем это все надо! Кругом полно ORM-ов выбирай на вкус...". С ORM вообще тяжко стало. Похоже что проектировать свой ORM считается отменной ересью и признаком глубокой задвинутости. &lt;br /&gt;&lt;br /&gt;Можно сказать мне повезло, я работал в команде, которая разрабатывала серьезный ORM движок еще в те времена, когда среди дотнетчиков эту аббревиатуру мало кто знал. Да и потом, я еще успел спроектировать пару ORM-чиков попроще, для нужд конкретных проектов. Отличная практика проектирования, скажу вам я. Такого клубка взаимосвязанных и противоречивых требований мало где найдешь. Но похоже следующие поколения разработчиков будет лишено такого удовольствия из-за страха перед изобретением велосипеда. &lt;br /&gt;&lt;br /&gt;И совершенно напрасно. Иногда хороший велосипед гораздо полезнее десятка плохо состыкованных шестнадцати-колесных универсальных трейлеров. &lt;br /&gt;Даже у самых лучших фреймворков всегда остаются их врожденные проблемы:&lt;br /&gt; - избыточность / недостаточность функционала для конкретной задачи&lt;br /&gt; - недостаточное соответствие конкретным требованиям&lt;br /&gt; - сложность интеграции с другими фрэймворками&lt;br /&gt; - проблемы с поддержкой и внесением изменений&lt;br /&gt;Иначе уже давно был бы создан мегафреймворк на все случаи жизни, и большинство из нас остались без работы.&lt;br /&gt; &lt;br /&gt;И в заключение цитата из статьи Тода Хоффа (Todd Hoff) &lt;a href="http://highscalability.com/scaling-twitter-making-twitter-10000-percent-faster"&gt;"Scaling Twitter: Making Twitter 10000 Percent Faster"&lt;/a&gt;. Один из уроков, вынесенных в процессе масштабирования Twitter-а:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Build it yourself. Twitter spent a lot of time trying other people's solutions that just almost seemed to work, but not quite. It's better to build some things yourself so you at least have some control and you can build in the features you need.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;"Делайте это сами. Twitter потратил кучу времени, испробуя казалось бы вполне работоспособные решения, сделанные другими, и все в пустую. Гораздо лучше сделать некоторые вещи самостоятельно, так что вы, как минимум, сможете иметь над ними полный контроль и встраивать новые фичи по мере необходимости". (с) Todd Hoff  &lt;br /&gt;&lt;br /&gt;P.S. На Тода Хофа наткнулся посредством вот этого блога &lt;a href="http://www.insight-it.ru/"&gt;Insight-it&lt;/a&gt;. Тематика, в основном, архитектура web приложений. Занимательно. Рекомендую.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=hgRLJH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=hgRLJH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=O7Rl4H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=O7Rl4H" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=FP1pxH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=FP1pxH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/288666347" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/288666347/blog-post.html" title="Велосипедофобия" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=4545048038848233818" title="Комментарии: 4" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/4545048038848233818/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/4545048038848233818" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/4545048038848233818" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/blog-post.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-1700060223235236594</id><published>2008-05-08T21:29:00.003+04:00</published><updated>2008-05-08T22:01:27.595+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft" /><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><title type="text">Как индусы Northwind поломали</title><content type="html">Не волнуйтесь, Northwind починен и доступен для загрузки. Об этом сообщает OakLeaf Systems blog: "&lt;a href="http://oakleafblog.blogspot.com/2008/05/upgraded-northwindsdf-file-for-ssce-v35.html"&gt;Upgraded Northwind.sdf File for SSCE v3.5 Available for Download&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;Мелочь, конечно, но интересно другое, а именно то, как об этом пишут:&lt;br /&gt;&lt;blockquote&gt;"Microsoft &lt;strong&gt;India's&lt;/strong&gt; Northwind.sdf sample database file for SQL Server Compact [Edition] (SSCE) v3.5 that ships with Visual Studio 2008 has a defect: Its column names and two foreign-key constraints (Order DetailsFK00 and Order DetailsFK01) contain spaces. As far as I can determine, this is the first sample database from Microsoft since Access 2.0's Northwind.mdb to have spaces in column names."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;И далее:&lt;br /&gt;&lt;blockquote&gt;"It might be acceptable to include spaces in column and constraint names in Bangalore but it's not considered a good database design practice in western countries."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Вот так вот :) Тут надо сделать небольшое пояснение. В конце ноября я &lt;a href="http://stump-workshop.blogspot.com/2007/11/windows.html"&gt;писал&lt;/a&gt; о том, что Microsoft, до сих пор неохотно продвигавшая свои производственные подразделения за пределы США, наконец не устояла и двинула свои офисы в Бангалор. Первыми ласточками стали подразделения User Feedback, Product Download и центр тестирования. С первыми результатами работы этих подразделений мы и имеем теперь дело. Исключительно резкий тон комментариев свидетельствует о том, и сам перенос подразделений в Бангалор и результаты их работы многим не по нраву. &lt;br /&gt;Косячат впрочем не только в Бангалоре. Из-за пробелов в названиях колонок и констрэйнтов в Entity Framework вылетает 5 рантаймов, ну а дизанер того же EF beta 3 полностью валит 2008 студию если получает на вход невалидный XML. Но ошибки Редмонта не вызывают таких резких коментов :)&lt;br /&gt;Впрочем, лучшие умы "народов запада" уже пофиксили священный Northwind и он доступен для скачивания (ссылочка в оригинальном посте).&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=AUCquH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=AUCquH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=7390IH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=7390IH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=i7RByH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=i7RByH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/286245281" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/286245281/northwind.html" title="Как индусы Northwind поломали" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=1700060223235236594" title="Комментарии: 1" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/1700060223235236594/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/1700060223235236594" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/1700060223235236594" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/northwind.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-4759603478370892649</id><published>2008-05-08T10:03:00.003+04:00</published><updated>2008-05-08T11:56:08.002+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="News" /><title type="text">Печальный конец Borland-а</title><content type="html">&lt;a href="http://www.borland.com/"&gt;Borland&lt;/a&gt; &lt;a href="http://www.news.com/8301-10784_3-9937966-7.html?tag=nefd.top"&gt;продает&lt;/a&gt; &lt;a href="http://www.codegear.com/"&gt;CodeGear&lt;/a&gt; (свое подразделение по разработке development tools) компании &lt;a href="http://www.embarcadero.com/"&gt;Embarcadero Technologies&lt;/a&gt; (известной своими средствами управления СУБД) за смешные деньги - $23 млн.&lt;br /&gt;Вот такой бесславный конец легендарного для многих программистов брэнда. В самом Borland теперь остаются продукты проектного управления (Caliber, Together, Silk) и пара серверов приложений Borland AppServer на J2EE и Borland VisiBroker на полумертвой CORBA. Ничего особенного, таких продуктов десятки на рынке. &lt;br /&gt; &lt;br /&gt;Если бы существовала &lt;a href="http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BC%D0%B8%D1%8F_%D0%94%D0%B0%D1%80%D0%B2%D0%B8%D0%BD%D0%B0"&gt;Дарвиновская премия&lt;/a&gt; в области бизнеса, то ее смело можно вручить Borland. &lt;em&gt;Эта компания просто удивительный клубок выдающихся инженерных достижений и не менее выдающихся управленческих провалов&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;С именем Borland связаны названия огромного числа выдающихся продуктов: Turbo Pascal, Turbo C, ObjectVision, Paradox, dBase, InterBase, Quattro Pro, Delphi. &lt;br /&gt;В свое время Borland занимал доминирующее положение на рынке средств разработки и "настольных" БД. Все это сопровождалось чехардой поглощений и продаж, и как следствие, упущенных возможностей. &lt;br /&gt;В 1991 Borland покупает компанию  Ashton-Tate - создателя dBase, первой БД для персональных компьютеров. С dBase списаны все последующие настольные БД FoxBase, Clipper, Access и т.д. В руках компании оказываются две замечательных настольных БД: Paradox и dBase. И тем не меннее компания теряет этот рынок, который достался FoxPro, Access и Clipper-у.&lt;br /&gt;&lt;br /&gt;Показательно, что постоянно лучшие инженеры покидают Borland и затем создают выдающиеся продукты. &lt;br /&gt;Niels Jensen уходит из Borland и в последствии создает &lt;a href="http://en.wikipedia.org/wiki/Clarion_programming_language"&gt;Clarion&lt;/a&gt;, очень самобытный продукт, кторый существует и поныне.&lt;br /&gt;Adam Bosworth уходит в 1990 году в Microsoft и там создает Microsoft Access. &lt;br /&gt;И, наконец, Anders Hejlsberg, создатель Delphi (Visual Basic Killer  - так хотели назвать его создатели), покидает Borland в 1996 и в Microsoft становится одним из создателей языка C# и платформы .Net.&lt;br /&gt;&lt;br /&gt;Еще можно вспомнить бесславную эпопею с переименованием Borland в Inprise и обратно, заигрывание с CORBA, эпопею с InterBase и Firebird. В сухом остатке после всех этих перепетий два не шибко популярных сервера приложений и потеря долей рынков IDE и DB.&lt;br /&gt;&lt;br /&gt;Похоже, что 7 мая закончился период полураспада компании. Borland уходит в историю.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=56WfbH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=56WfbH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=K1XjgH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=K1XjgH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=tY8o3H"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=tY8o3H" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/285929906" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/285929906/borland.html" title="Печальный конец Borland-а" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=4759603478370892649" title="Комментарии: 17" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/4759603478370892649/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/4759603478370892649" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/4759603478370892649" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/borland.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-7456250409867022747</id><published>2008-05-02T18:59:00.003+04:00</published><updated>2008-05-02T19:24:24.723+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><title type="text">CMM как инструмент колониализма</title><content type="html">Любопытное и весьма симптоматичное высказывание &lt;a href="http://www.yourdon.com/?loc=aboutme"&gt;Эдварда Йордона&lt;/a&gt; в его &lt;a href="http://www.yourdonreport.com/index.php/2008/04/28/visiting-russia/"&gt;отчете о визите в Россию&lt;/a&gt; по поводу распространения CMM у нас:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Also, I was surprised by the number of people in my presentations who said their software organization had received an SEI-CMM “Capability Maturity Model” assessment, and even more surprised by the number of people who said their IT organization had achieved level-3, level-4, or even level-5. It’s not as high as one might expect in India, but significantly higher than what I’ve seen in the U.S".&lt;/blockquote&gt; &lt;br /&gt;&lt;br /&gt;Йордон удивлен тем, как много CMM сертифицированных компаний в России, не так много как, допустим, в Индии, но гораздо больше чем в США. &lt;br /&gt;Т.е в самой метрополии CMM никому не нужен. А вот для стран третьего мира, это весьма ценный инструмент, который позволяет среднему американскому менеджеру удостовериться, что эти аборигены знают с какой стороны подходить к компьютеру, и им можно отдавать в офшор свой драгоценный бизнес.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=epgRvH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=epgRvH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=SSglFH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=SSglFH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=pe2pNH"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=pe2pNH" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/282178371" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/282178371/cmm.html" title="CMM как инструмент колониализма" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=7456250409867022747" title="Комментарии: 0" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/7456250409867022747/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/7456250409867022747" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/7456250409867022747" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/05/cmm.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-374624669083994883</id><published>2008-04-29T09:47:00.002+04:00</published><updated>2008-04-29T10:03:52.039+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Just fun" /><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><title type="text">Бардак, он везде бардак</title><content type="html">Я с интересом читаю блог &lt;a href="http://blogs.sun.com/jonathan_ru/"&gt;Джонатана Шварца&lt;/a&gt; (Chief Executive Officer and President&lt;br /&gt;Sun Microsystems, Inc.) Несмотря на его достаточно очевидную маркетинговую составляющую, в нем проглядывает простая человеческая непосредственность (ну или может искусно имитируется). &lt;br /&gt;Последний пост называется &lt;a href="http://blogs.sun.com/jonathan_ru/entry/%D0%B2%D1%8B%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC_%D1%81%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D1%83"&gt;"Выбираем свободу"&lt;/a&gt; и суть его в том, что на одной официальной встрече Джонатан спрашивает одного большого CTO большой Компании, "а вы используете MySQL?" (Sun купила MySQL? так что он не просто так это спрашивает :). На что большой CTO отвечает: "Конечно нет. Мы используем другую известную и дорогую СУБД". А CISO добавляет: "Мы не можем использовать какой-то там левый MySQL, потому что мы очень серьезная контора!". &lt;br /&gt;И тут оказывается, что разработчики этой большой и серьезной конторы вовсю используют MySQL, и только большие начальники об этом ничего не знают. &lt;br /&gt;Тут Джонатан начинает рассуждать о том как важна свобода, и поэтому Sun это здорово. &lt;br /&gt;А я подумал что бардак, он и в Америке бардак. А CTO и CISO что у них, что у нас предпочитают надувать от важности щеки вместо того, чтобы заниматься делом.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=DFy7bG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=DFy7bG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=yCoegG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=yCoegG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=wq9G9G"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=wq9G9G" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/279882656" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/279882656/blog-post_29.html" title="Бардак, он везде бардак" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=374624669083994883" title="Комментарии: 2" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/374624669083994883/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/374624669083994883" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/374624669083994883" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/04/blog-post_29.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-4879166937444610958</id><published>2008-04-23T11:37:00.003+04:00</published><updated>2008-04-23T12:11:19.540+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Опросы" /><title type="text">Результаты опроса "В разработке какого типа ПО вы участвуете".</title><content type="html">Опрос проводился с течении недели. В нем приняло участие 105 человек, из них 103 занимаются разработкой софта. &lt;br /&gt;Разработкой софта на заказ занимаются 41 чел.&lt;br /&gt;Примерно равное количество респондентов занимаются коробочным софтом и разработкой для Интернета (22 и 20 чел соответственно).&lt;br /&gt;Внутренней автоматизацией заняты 10 чел.&lt;br /&gt;Самым интересным для программистов - разработкой средств разработки, и инфраструктуры занимаются четверо человек.&lt;br /&gt;&lt;br /&gt;В виде пирога это все выглядит вот так:&lt;br /&gt;&lt;img src="http://chart.apis.google.com/chart?chs=370x100&amp;chd=t:15,41,22,20,4&amp;cht=p3&amp;amp;chl=internal dev 15%|custom soft 39%|off-the shelf soft 20%|internet soft 19%|tools 3%&amp;chco=008800" border="0" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;В общем довольно странные и неожиданные результаты, которые вероятно следует объяснить спецификой аудитории этого блога. Дело в том, что сам я в последнее время занимаюсь разработкой заказного софта, и  это естественно отражается на тематике блога, и привлекает определенную аудиторию. LAMP разработчикам здесь не интересно, равно как и 1С программистам. &lt;br /&gt;Потому что по моим оценкам, самая многочисленная группа программистов, это те, кто занимается внутренней автоматизацией в десятках тысяч фирм, контор, фабрик и заводов. А следующие по распространенности, по моему, должны быть сайтостроители. За ними оффшорники, вроде меня :). Затем те, кто делает коробочное ПО (+ игры). Ну и системщиков - инструментальщиков никак не больше чем один из ста.&lt;br /&gt;&lt;br /&gt;Интересно, есть ли где ни будь более объективная статистика на этот счет?      &lt;br /&gt;&lt;br /&gt;P.S. Зеленый пирог испечен при помощи &lt;a href="http://code.google.com/apis/chart/"&gt;Google Chart API&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=8lannBG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=8lannBG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=Lelvd3G"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=Lelvd3G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=WI07GoG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=WI07GoG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/276006180" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/276006180/blog-post_23.html" title="Результаты опроса &quot;В разработке какого типа ПО вы участвуете&quot;." /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=4879166937444610958" title="Комментарии: 6" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/4879166937444610958/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/4879166937444610958" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/4879166937444610958" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/04/blog-post_23.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-5150998940681058174</id><published>2008-04-16T22:38:00.004+04:00</published><updated>2008-04-16T23:06:11.860+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><title type="text">Версионный контроль кода в Agile</title><content type="html">Интересная статья Хенрика Кнайберга (Henrik Kniberg) &lt;a href="http://www.infoq.com/articles/agile-version-control"&gt;Version Control for Multiple Agile Teams&lt;/a&gt; на InfoQ.com&lt;br /&gt;&lt;br /&gt;Версионный контроль традиционно является одной из самых запутанных, я бы даже сказал, запущенных практик. Причем энтузиасты склонны все чрезмерно усложнять (встречаются аццкие конструкции из транков, брэнчей, бэйслайнов, где без поллитра ни за что не разберешься), а прагматики  - все упрощать. &lt;br /&gt;&lt;br /&gt;Для Agile обычно характерно достаточно утилитарное отношение к версионному контролю. Команда небольшая, продукт постоянно в рабочем состоянии, постоянно совершенствуется, поэтому все постоянно работают в одной ветке (в транке). Но не всегда все так просто. &lt;br /&gt;&lt;br /&gt;Как работать с версионным контролем когда на проекте несколько Agile команд? Как избежать хаоса при этом? Для чего делать брэнчи для релизов? Каких политик придерживаться при обновлении брэнчей?  Как поддерживать код в транке в рабочем состоянии? Про все это и много другое Хенрик рассказывает просто и ясно, без фанатизма, по скандинавски :)&lt;br /&gt;Есть и картинки, которыми истинные аджайлисты любят обклеивать стены офиса. Наподобие этой:&lt;br /&gt;&lt;a href="http://www.infoq.com/resource/articles/agile-version-control/en/resources/part1.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px;" src="http://www.infoq.com/resource/articles/agile-version-control/en/resources/part1.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;В общем, рекомендую почитать.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=d5ID9JG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=d5ID9JG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=cqYEtIG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=cqYEtIG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=5YGe9pG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=5YGe9pG" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/StumpsWorkshop/~4/271627476" height="1" width="1"/&gt;</content><link rel="alternate" type="text/html" href="http://feeds.feedburner.com/~r/StumpsWorkshop/~3/271627476/agile.html" title="Версионный контроль кода в Agile" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5092972944722879737&amp;postID=5150998940681058174" title="Комментарии: 0" /><link rel="replies" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/5150998940681058174/comments/default" title="Комментарии к сообщению" /><link rel="self" type="application/atom+xml" href="http://stump-workshop.blogspot.com/feeds/posts/default/5150998940681058174" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5092972944722879737/posts/default/5150998940681058174" /><author><name>Sergey Rozovik</name><uri>http://www.blogger.com/profile/13717493609449785600</uri><email>noreply@blogger.com</email></author><feedburner:origLink>http://stump-workshop.blogspot.com/2008/04/agile.html</feedburner:origLink></entry><entry><id>tag:blogger.com,1999:blog-5092972944722879737.post-3055095107740303741</id><published>2008-04-16T20:45:00.001+04:00</published><updated>2008-04-17T10:12:44.012+04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Статьи" /><category scheme="http://www.blogger.com/atom/ns#" term="Links" /><title type="text">Образование и IT. Образование или IT?</title><content type="html">Интересная статья в PCWeek профессора Шалыто &lt;a href="http://www.pcweek.ru/themes/detail.php?ID=108777"&gt;"Сохраним в университетах лучших"&lt;/a&gt; на тему подготовки специалистов для IT вызвала довольно оживленную дискуссию. &lt;br /&gt;Автор утверждает:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"...самые лучшие (выдающиеся) студенты и выпускники должны иметь материальную возможность работать не у вас в промышленности, а нас в вузах (если у них, конечно, есть такое желание)!"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Дальше я пояснил, что взяв на работу лучшего, компания получает конкурентные преимущества, а отрасль почти наверняка этого человека теряет, если человек этот, как, например, Дж. Гослинг, не предложит что-то очень важное для человечества в целом. Оказавшись же в университете на преподавательской работе, он может нести “доброе и вечное” другим сильным студентам, которые как раз и пойдут работать к вам в промышленность."&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;"Суперталантливым молодым людям, по моему мнению, нельзя идти в крупные компании, так как в большинстве случаев они для отрасли даже не исчезнут, а можно сказать, просто аннигилируют."  &lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Именно эти высказывания и вызвали наиболее жаркую полемику. Мне конечно не подняться в своих рассуждениях до анализа проблемм образования в целом, но &lt;strong&gt;с автором я не согласен&lt;/strong&gt;. &lt;br /&gt;Кафедра профессора Шалыто известна подготовкой призеров международных олимпиад по программированию. Это здорово, нужно, очень престижно и заслуживает всяческой поддержки на государственном уровне. Но к потребностям IT индустрии все это имеет мало отношения. &lt;br /&gt;&lt;br /&gt;Лучшие должны оставаться в университетах, чтобы готовить еще более лучших. Такая замкнутая экосистема может хороша для университетов, но для отрасли она просто пагубна. Проблема обучения программистов сегодня в том, что обучение оторвано от реальных потребностей рынка, и такой подход только увеличит разрыв. &lt;br /&gt;&lt;br /&gt;Действительно, уровень выпускников периферийных ВУЗов откровенно слабый из-за слабого преподавания, и тут надо что-то делать. В элитных университетах (МГУ, МФТИ, СПбГУ) дают хорошую системную, математическую и алгоритмическую подготовку, но нигде не дают нормальных знаний того, что относится к &lt;strong&gt;технологии программной инженерии&lt;/strong&gt;. Все знают, что выпускники превращаются в хороших специалистов лишь через два, три года работы в реальных проектах.  &lt;br /&gt;&lt;br /&gt;Посмотрите на программы обучения на факультете &lt;a href="http://www.cs.msu.su/jetspeed/portal"&gt;ВМиК&lt;/a&gt; МГУ. Я был поражен, когда среди "конструирования компиляторов", "численных методов" и "математических основ криптологии" встретил там курс "Методология внедрения информационных систем". Воистину гора пошла навстречу Магомету, в МГУ программистов учат не только программировать но и внедрять свои программы! Сможет ли читать курс "методология внедрения информационных систем" человек, который со студенческой скамьи сразу перешел за преподавательскую кафедру. Чтобы рассказывать без нервного срыва и матерного слова о внедрении информационных систем, надо отдать этому делу несколько лет жизни.&lt;br /&gt;&lt;br /&gt;Действительно, лучшие должны идти в образование. Но не оставаться там после обучения, &lt;strong&gt;а возвращаться туда, набравшись практического опыта&lt;/strong&gt;. Именно так происходит в США, где венцом карьеры для software engineer является если не директорский пост в технологической компании, то профессорская кафедра в престижном университете.  &lt;br /&gt;&lt;br /&gt;Суперталанты не аннигилируют в индустрии. Тот же Гослинг и его команда пришли к созданию Java долгим и извилистым путем анализа реальных потребностей рынка, а не в тиши университетских лабораторий.&lt;br /&gt;Специфика IT сегодня такова, что зачастую самые мощные инновации и исследования возникают вовсе не в университетах, а в индустрии, в последовательных центрах крупных корпораций и в маленьких стартапах. Это факт, и особенно актуально это для России. У нас нет инновационных учебных центров в области IT наподобие Университета Карнеги-Меллона или МТИ.   &lt;br /&gt;&lt;br /&gt;Наладить положительную обратную связь между индустрией и университетами для передачи инноваций и опыта, вот что необходимо. Что может подвигнуть успешных профессионалов заняться преподаванием? Деньги? Вряд ли, хотя без них тоже никак, успешный профессионал стоит дорого.  Престиж, общественное признание? Пожалуй. И конечно, целенаправленные партнерские усилия компаний и университетов в области обучения. Пока на этом поприще замечены в основном крупные западные компании: Google, Microsoft, IBM. Они готовы инвестировать в обучение. Российские компании, если и рассматривают варианты партнерских отношений с учебными заведении, то в основном с позиций извлечения выгоды (продавать учебные курсы, "покупать" выпускников подешевле, поднатаскав их предварительно). Ну, видимо не созрели еще...&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/StumpsWorkshop?a=k5Z6VIG"&gt;&lt;img src="http://feeds.feedburner.com/~f/StumpsWorkshop?i=k5Z6VIG" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/StumpsWo