<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0YDQnw9fSp7ImA9WhRUFkU.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842</id><updated>2012-01-27T19:19:33.265+03:00</updated><category term="GSM" /><category term="CMake" /><category term="Библиотека OTL" /><category term="Внезапно" /><category term="Книга &quot;Оружие победы&quot;" /><category term="Знакомство с фотомастером" /><category term="О компьютерах" /><category term="Parallel Programming" /><category term="язык D" /><category term="OODB" /><category term="язык Go" /><category term="язык Haskell" /><category term="язык Ceylon" /><category term="Жестокость" /><category term="ObjESSty" /><category term="язык Java" /><category term="Kubuntu" /><category term="Функциональное программирование" /><category term="Спиртное" /><category term="Дартс" /><category term="Book review" /><category term="язык C" /><category term="&#xA;язык D#О программировании" /><category term="Benchmark" /><category term="Подсмотренное" /><category term="Хвастаюсь" /><category term="&#xD;О жизни" /><category term="SourceForge" /><category term="Отдых" /><category term="ACE" /><category term="Поток сознания" /><category term="Отличная мысль" /><category term="Быть начальником?" /><category term="Ссылки" /><category term="gSOAP" /><category term="Блог" /><category term="Война" /><category term="язык JavaScript" /><category term="язык C++" /><category term="Overloading Control" /><category term="Спорт" /><category term="#О программированииязык Scala" /><category term="язык Ruby" /><category term="Actor Model" /><category term="Велосипедостроение" /><category term="О работе#О программированииПоток сознания" /><category term="язык PHP" /><category term="Внушаить" /><category term="Фантастика" /><category term="Кризис в РБ" /><category term="Штуковина" /><category term="XML" /><category term="Живопись" /><category term="Humour" /><category term="Foto" /><category term="NoSQL" /><category term="Kilim" /><category term="Путешествия" /><category term="язык Scala" /><category term="Маразм крепчал" /><category term="История" /><category term="Язык Eiffel" /><category term="Must Read" /><category term="Кино" /><category term="SOAP" /><category term="О программировании" /><category term="Искусство" /><category term="Amazon's Dynamo" /><category term="Природа" /><category term="Bugs" /><category term="язык OCaml" /><category term="Mxx_ru" /><category term="POCO" /><category term="язык Erlang" /><category term="Афигеть" /><category term="Мысля давеча посетила" /><category term="Павбывавбы" /><category term="Музыка" /><category term="О работе" /><category term="SObjectizer" /><category term="ODBC" /><category term="Из непонятого" /><category term="Боевик" /><category term="Multithreading" /><category term="Boost" /><category term="О жизни" /><category term="Сиде-2011" /><category term="Serialization" /><title>Размышлизмы eao197</title><subtitle type="html">Размышления и впечатления, которые не хочется держать в себе. О программировании в частности. Ну и о творчестве, и о жизни вообще.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://eao197.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>1343</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Eao197" /><feedburner:info uri="eao197" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DkcERnwzeCp7ImA9WhRUFUQ.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-2814136344160014102</id><published>2012-01-26T19:06:00.001+03:00</published><updated>2012-01-26T19:06:47.280+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-26T19:06:47.280+03:00</app:edited><title>[life] Заеду на три дня в Минск</title><content type="html">&lt;p&gt;Завтра ранним утром с коллегами отбываем в Минск чтобы принять участие &lt;a href="http://forum.dartsby.org/default.aspx?g=posts&amp;amp;m=3982#post3982"&gt;в международном турнире по дартс&lt;/a&gt;. Лично у меня никаких спортивных амбиций на этот турнир нет, но соревновательного адреналина вкусить хочется. Потому и еду :)&lt;/p&gt;  &lt;p&gt;Посему заниматься блогом пока не смогу, на новые комментарии отвечу когда вернусь.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-2814136344160014102?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/W68HYmoSvao" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/2814136344160014102/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=2814136344160014102" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2814136344160014102?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2814136344160014102?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/W68HYmoSvao/life_26.html" title="[life] Заеду на три дня в Минск" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/life_26.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4MR3c5fSp7ImA9WhRUE0Q.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-9059611606916660136</id><published>2012-01-24T12:56:00.001+03:00</published><updated>2012-01-24T12:56:26.925+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-24T12:56:26.925+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Ссылки" /><title>[prog] Что не так с ООП? Мнение Ричарда Гэбриеля</title><content type="html">&lt;p&gt;&lt;a href="http://www.rsdn.ru/forum/philosophy/4581044.aspx"&gt;На RSDN сейчас развивается большой флейм под общим заголовком “Что-то нетак с ООП”&lt;/a&gt;. Насколько я смог заметить по беглому просмотру, одной из обсуждаемых тем там является повторное использование кода.&lt;/p&gt;  &lt;p&gt;Имхо, очень точно на эту тему высказался в 1996-м году Ричард Гэбриель, один из известных Lisp-ероводов, в книге &lt;a href="http://www.dreamsongs.com/NewFiles/PatternsOfSoftware.pdf"&gt;Patterns Of Software. Tales from the Software Community&lt;/a&gt;. Насколько точно, что я даже потратил некоторое время на то, чтобы перевести соответствующую главу на русский язык.&lt;/p&gt;  &lt;p&gt;Поэтому без ложной скромности &lt;a href="http://eao197.narod.ru/desc/reuse_versus_compression.pdf"&gt;отсылаю интересующихся к этому переводу&lt;/a&gt;. Настоятельно рекомендую даже ;)&lt;/p&gt;  &lt;p&gt;PS. В самой же книге, помнится, я осилил только несколько первых глав. Мне показалось, что чем дальше, тем больше мы расходимся во мнениях с автором. В результате чего книгу я не дочитал, может быть зря.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-9059611606916660136?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/CDn-SB8bzrQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/9059611606916660136/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=9059611606916660136" title="Комментарии: 4" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/9059611606916660136?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/9059611606916660136?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/CDn-SB8bzrQ/prog_24.html" title="[prog] Что не так с ООП? Мнение Ричарда Гэбриеля" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>4</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/prog_24.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EGRno4cCp7ImA9WhRUE0Q.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-1417760232762345349</id><published>2012-01-24T10:53:00.001+03:00</published><updated>2012-01-24T10:53:47.438+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-24T10:53:47.438+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="язык D" /><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Поток сознания" /><title>[prog.thoughts] О времени и языке D</title><content type="html">&lt;p&gt;Что-то на выходных потянуло на философские размышления о времени. И как-то вспомнился такой язык программирования, как D. Вальтер Брайт начал им заниматься в 1999-м, впервые D был представлен миру в 2001. А сейчас на дворе уже 2012-й. Ни много, ни мало, но на разработку D уже ушло 13 лет, а с момента его появления на публике минуло уже 10 лет.&lt;/p&gt;  &lt;p&gt;Для сравнения: язык C++ начал свою историю с 1979-го, имя свое получил в 1983-м, а первый публичный релиз состоялся в 1985-м. Через 13 лет после начала работ над C++ – а это 1992-й год – он был уже вполне себе мейнстримовым языком. Через 10 лет после публичного релиза – 1995-й – самым мейнстримом из мейнстримов. Работы по стандартизации C++ шли полным ходом. STL к тому времени уже существовал, и самым серьезным образом дорабатывался чтобы войти в стандарт языка.&lt;/p&gt;  &lt;p&gt;Я с языком D познакомился где-то в районе 2001-2002 годов. Тогда было понятно, что это еще очень сырой проект. Но интересный. Поэтому время от времени его развитием я интересовался. И мне нравилось то, что я видел. Язык развивался в нужную сторону. В частности, со временем Брайт добавил в D шаблоны, да какие шаблоны! В C++ на тот момент таких не было.&lt;/p&gt;  &lt;p&gt;В общем, на мой взгляд, где-то в районе 2005-2006 годов язык D уже был готов к релизу. Да и момент тогда был очень удобный. Ведь в это время случился взрыв интереса к Ruby на волне успеха Ruby-On-Rails. И Ruby тогда очень хорошо показал, что в какой-то конкретной нише может выстрелить даже не очень известный язык, без большого коммьюнити, без большого количества инструментов, без поддержки больших игроков.&lt;/p&gt;  &lt;p&gt;И можно было бы вспомнить тогдашнюю ситуацию с C++. Это было время, когда усилиями Sun (Java) и Microsoft (C#) программирование на неуправляемых языках (т.н. native code) начало приобретать черты маргинального направления. И будущее самого языка C++ было туманным: работа над следующим стандартом языка казалась долгостроем, который никогда не закончится.&lt;/p&gt;  &lt;p&gt;Вот в этот момент язык D, который был почти что C++, &lt;a href="http://rsdn.ru/forum/philosophy/2222569.1.aspx"&gt;но много лучше&lt;/a&gt;, имел свой шанс на успех.&lt;/p&gt;  &lt;p&gt;В то время я сам был готов его использовать. Для этого нужна была всего лишь малость – стабилизация. Выпуск официальной версии языка и переход только к его поддержке – исправлению ошибок, оптимизации, совершенствованию инструментария, расширения библиотек и т.д. Без этого взять курс на переписывание в течении нескольких лет нескольких сотен тысяч строк C++ного кода с параллельной разработкой новых проектов уже на D я бы не решился.&lt;/p&gt;  &lt;p&gt;Такой переход к стабилизации языка для Вальтера Брайта был сродни подвигу. Если кто тогда следил за D, тот может помнить, что Брайт выпускал новые версии компилятора где-то раз в 2-3 недели. Иногда добавляя что-то очень классное, иногда ломая совместимость со старым, иногда просто устраняя несколько десятков ошибок. Но никто тогда не видел ни какого-то плана развития языка, ни даже списка озвученных целей, которые Брайт стремиться достичь в D.&lt;/p&gt;  &lt;p&gt;Тем не менее, в конце 2006 в конце туннеля забрезжил свет и в самом начале 2007 состоялся релиз D 1.000.&lt;/p&gt;  &lt;p&gt;Казалось бы – вот оно, свершилось! Но счастье длилось очень недолго. Уже по весне 2007-го зашли разговоры о языке D2, который не будет совместим с D1. И в середине 2007-го появилась первая версия компилятора D2. После чего развитие D2 пошло по тому же сценарию, что и D1 – периодические релизы новых версий компилятора и непонятное развитие языка по одному автору ведомому плану.&lt;/p&gt;  &lt;p&gt;Это был трындец. После такого поворота даже мне, практически евангелисту языка D, стало понятно, что с D связываться нельзя. Он не взлетит.&lt;/p&gt;  &lt;p&gt;В январе 2012-го исполнилось пять лет с релиза D 1.0. Пять лет! Это очень немаленький срок. И где же сейчас D 1.0? Что на нем написано? Какое распространение он получил? Полагаю, все это уже чисто риторические вопросы.&lt;/p&gt;  &lt;p&gt;К чему я весь этот поток сознания выплеснул на головы читателей? Когда появились разговоры о D2 многие думали, что это ошибочное решение. Но доказать правомочность их опасений могло только время. И вот незаметно пробежало пять лет. Можно делать неутешительные выводы – скептики оказались правы :(&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-1417760232762345349?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/9izrMSzN9Ic" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/1417760232762345349/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=1417760232762345349" title="Комментарии: 76" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/1417760232762345349?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/1417760232762345349?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/9izrMSzN9Ic/progthoughts-d.html" title="[prog.thoughts] О времени и языке D" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>76</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/progthoughts-d.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IASHw5fCp7ImA9WhRUE0U.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-8268041637115903947</id><published>2012-01-24T10:19:00.001+03:00</published><updated>2012-01-24T10:19:09.224+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-24T10:19:09.224+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Природа" /><category scheme="http://www.blogger.com/atom/ns#" term="Foto" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.photo] Ну и еще раз о погоде</title><content type="html">&lt;p&gt;Очень хорошая карточка и очень в тему того, что творится за окном:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://online.wsj.com/media/012312pod01_J.jpg"&gt;&lt;img src="http://online.wsj.com/media/012312pod01_J.jpg" width="640" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Швейцария, Давос. Снимок найден &lt;a href="http://blogs.wsj.com/photojournal/2012/01/23/photos-of-the-day-jan-23"&gt;в очередном выпуске WSJ’s Photos of the Day&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-8268041637115903947?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/jDOEDic9fxw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/8268041637115903947/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=8268041637115903947" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8268041637115903947?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8268041637115903947?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/jDOEDic9fxw/lifephoto.html" title="[life.photo] Ну и еще раз о погоде" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifephoto.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUERn44fip7ImA9WhRUE00.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-9186710479691086737</id><published>2012-01-23T11:43:00.001+03:00</published><updated>2012-01-23T11:43:27.036+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-23T11:43:27.036+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Природа" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life] Ну и о погоде…</title><content type="html">&lt;p&gt;…проходя мимо погребенных под снегом во дворе автомобилях в очередной раз порадовался тому, что я не автомобилист :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-9186710479691086737?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/Vv-fdQ-TejY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/9186710479691086737/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=9186710479691086737" title="Комментарии: 7" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/9186710479691086737?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/9186710479691086737?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/Vv-fdQ-TejY/life_23.html" title="[life] Ну и о погоде…" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>7</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/life_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEDRX4zeyp7ImA9WhRUEU4.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-6628230861600113455</id><published>2012-01-21T12:21:00.001+03:00</published><updated>2012-01-21T12:21:14.083+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-21T12:21:14.083+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О компьютерах" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[comp] Интересуюсь мнением об Android-планшетниках</title><content type="html">&lt;p&gt;Вчера вдруг меня посетила идея обзавестись планшетным компьютером. Не для работы, а для дома. Круг задач вполне заурядный: для меня это – чтение материалов из Интернета, почта, комментарии в блогах, ролики на YouTube, Интернет-трансляции спортивных соревнований, чтение книг, иногда просмотр фильмов. Для жены еще нужен Skype. В общем то, для чего планшеты, как мне кажется, и предназначены изначально.&lt;/p&gt;  &lt;p&gt;Знаю, что на рынке есть три основные категории планшетов – Apple-овские iPad-ы, Android-планшеты от разных производителей, ну и несколько моделей на базе Windows. Windows-планшеты, как мне кажется, вряд ли имеет смысл рассматривать (насколько я слышал, Intel Atom намного прожорливее, чем ARM Cortex, поэтому время работы таких планшетов будет заметно меньше). iPad по религиозным соображениям сразу ставится в конец очереди ;) Поэтому сначала хочется посмотреть на Android-ы.&lt;/p&gt;  &lt;p&gt;Беглый просмотр имеющихся предложений показал, что есть практически идентичные модели от ряда серьезных производителей: &lt;a href="http://uti-note.ru/product121009923/"&gt;Sumsung&lt;/a&gt;, &lt;a href="http://uti-note.ru/product133567217/"&gt;Asus&lt;/a&gt;, &lt;a href="http://uti-note.ru/product113957854/"&gt;Acer&lt;/a&gt;, &lt;a href="http://uti-note.ru/product95927923/"&gt;Lenovo&lt;/a&gt; и &lt;a href="http://uti-note.ru/product81761871/"&gt;Sony&lt;/a&gt; (не говоря уже о более мелких поставщиках).&lt;/p&gt;  &lt;p&gt;Самая интересная из них, по количеству различных разъемов, это &lt;a href="http://uti-note.ru/product113957854/"&gt;Acer Iconia TAB&lt;/a&gt; – тут тебе и HDMI, и целых два USB. Но поработав некоторое время на Acer-овском ноутбуке решил больше с Acer-овской продукцией не связываться. Поскольку, на мой взгляд, привлекательное сочетание цены и возможностей Acer обеспечивает более низким, чем у конкурентов, качеством.&lt;/p&gt;  &lt;p&gt;Из остальных же вариантов самыми интересными для меня являются &lt;a href="http://uti-note.ru/product95927923/"&gt;Lenovo IdeaPad K1&lt;/a&gt; и &lt;a href="http://uti-note.ru/product81761871/"&gt;Sony Tablet S&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Достоинством планшета от Lenovo является наличие HDMI разъема. Поскольку иногда я пускал трансляции из Интернета с ноутбука на телевизор через HDMI и так было намного удобнее, то HDMI-выход я воспринимаю как отличную фичу. Плюс к тому, IdeaPad, даже имея в два раза больший SSD накопитель внутри, намного дешевле Sony Tablet S. Но при этом на 130 грамм тяжелее, чем Sony.&lt;/p&gt;  &lt;p&gt;В Sony Tablet привлекает прежде всего качество Sony (о котором я высокого мнения), плюс меньший размер и вес. Но главный плюс – это наличие USB разъема (хоть и требующего дополнительного переходника). Был бы у него еще и HDMI, как у Lenovo, то выбор был бы однозначно в пользу Sony.&lt;/p&gt;  &lt;p&gt;Так вот хочу спросить у уважаемых читателей – а так ли важно, на самом деле, наличие USB для Android-планшета?&lt;/p&gt;  &lt;p&gt;На обычном нетбуке USB разъем нужен мне для того, чтобы легко скачивать что-нибудь с бука на флэшку (фильмы, музыку, книги, фотографии) и закачивать тоже самое обратно. Но позволяет ли все это USB на Android-е?&lt;/p&gt;  &lt;p&gt;Да и вообще любые отзывы об Android-ах (особенно негативные и особенно об упомянутых выше моделях) всячески приветствуются.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-6628230861600113455?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/Ki9Sc5m5sJM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/6628230861600113455/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=6628230861600113455" title="Комментарии: 29" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/6628230861600113455?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/6628230861600113455?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/Ki9Sc5m5sJM/comp-android.html" title="[comp] Интересуюсь мнением об Android-планшетниках" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>29</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/comp-android.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAMSH87eCp7ImA9WhRVGUs.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-599467451657918755</id><published>2012-01-19T12:03:00.001+03:00</published><updated>2012-01-19T12:03:09.100+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-19T12:03:09.100+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Поток сознания" /><title>[prog] Пояснение/дополнение к предыдущему посту</title><content type="html">&lt;p&gt;&lt;a href="http://eao197.blogspot.com/2012/01/prog-ocaml-for-masses.html"&gt;В предыдущем посте&lt;/a&gt; в одном месте мне не удалось достаточно полно выразить свою мысль, поэтому постараюсь исправиться здесь.&lt;/p&gt;  &lt;p&gt;Итак, в одном из примеров автор статьи хотел показать способность системы типов вылавливать баги:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#ffff60"&gt;let&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;rec&lt;/font&gt; destutter l &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#ffff60"&gt;match&lt;/font&gt; l &lt;font color="#ffff60"&gt;with&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;[]&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;[]&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt; x &lt;font color="#ffff60"&gt;::&lt;/font&gt; y &lt;font color="#ffff60"&gt;::&lt;/font&gt; rest &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;if&lt;/font&gt;&amp;#160; x &lt;font color="#ffff60"&gt;=&lt;/font&gt; y &lt;font color="#ffff60"&gt;then&lt;/font&gt; destutter &lt;font color="#ffff60"&gt;(&lt;/font&gt;y &lt;font color="#ffff60"&gt;::&lt;/font&gt; rest&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;else&lt;/font&gt;&amp;#160; x &lt;font color="#ffff60"&gt;::&lt;/font&gt; destutter &lt;font color="#ffff60"&gt;(&lt;/font&gt;y &lt;font color="#ffff60"&gt;::&lt;/font&gt; rest&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Эта функция не обрабатывает вариант, когда в исходном списке l всего один элемент. И эту ошибку обнаруживает компилятор, подсказывая программисту, что остался необработанным вариант _::[], которого не было в паттерн-матчинге.&lt;/p&gt;  &lt;p&gt;Теперь попытаюсь еще раз объяснить, почему я считаю этот пример неудачным. Не смотря на то, что действительно, раз компилятор языка указал нам на ошибку, то это намного лучше, чем когда ошибка выявляется лишь тестами.&lt;/p&gt;  &lt;p&gt;Так вот, главная причина в том, что даже найденная компилятором ошибка не освобождает нас от написания тестов для функции destutter. Да, компилятор гарантирует нам, что мы обработали все основные варианты в паттерн-матчинге. Но дает ли это нам гарантию в правильности работы функции?&lt;/p&gt;  &lt;p&gt;Нет, не дает. Поскольку мы могли ошибиться где-то в ветвях паттерн-матчинга. Например, вместо if x = y написали бы if x &amp;lt;&amp;gt; y. Или же в ветви else вместо x::destutter(y::rest) указали бы destutter(y::rest). Ведь такого рода ошибки система типов не контролирует.&lt;/p&gt;  &lt;p&gt;Значит, тесты для destutter нужны. И если написать тесты, в которых не будут проверятся варианты с пустым списком и списком из одного элемента, то такие тесты будут плохими. Ведь они допустят регрессию, если, например, кто-то захочет отрефакторить destutter и в новом варианте ошибется.&lt;/p&gt;  &lt;p&gt;Т.е. выловленная компилятором ошибка, на мой взгляд, вовсе не уменьшило количество тестов, которые должен был бы написать разработчик. Именно поэтому помощь со стороны системы типов в данном месте – это счастливый случай, на который не приходится рассчитывать в будущем. А, посему, нет разницы, перестаем ли мы надеяться на счастливые случаи в Python-е или же в OCaml-е.&lt;/p&gt;  &lt;p&gt;Я убежден, что системы типов (т.е. то, что ставится во главу угла евангелистами от функциональщины) должны уменьшать количество проверок, которые должен делать программист. Не суть важно, в unit-тестах или же в виде assert-ов или if-ов в основном коде программы.&lt;/p&gt;  &lt;p&gt;Взять в качестве примера самый простой &lt;a href="http://eao197.blogspot.com/2009/10/compprog-void-safety-eiffel.html"&gt;void safety (т.е. отсутствие обращения к нулевому указателю)&lt;/a&gt;. В C/C++ и Java можно передать в функцию аргумент по указателю (в Java по ссылке) и этот аргумент запросто может оказаться нулевым. Даже если в комментариях к функции сто раз будет написано, что ноль туда передавать нельзя. И разработчику такой функции, если он не хочет допустить краха приложения, придется вставлять проверку на равенство аргумента нулю. Эта так самая лишняя проверка, лишняя работа и еще один шанс допустить ошибку в программе, от которой действительно избавляет разработчика система типов.&lt;/p&gt;  &lt;p&gt;Ведь если язык поддерживает понятие nullable и non-nullable ссылок (в Eiffel они называются attached и detachable), то тогда разработчик функции может явно указать, что аргумент функции не может быть нулевым. И компилятор ему это будет гарантировать! Следовательно, разработчик будет освобожден от написания лишних проверок и тестов, поскольку это уже не нужно.&lt;/p&gt;  &lt;p&gt;Вот если бы автор критикуемой мной &lt;a href="http://queue.acm.org/detail.cfm?id=2038036"&gt;статьи&lt;/a&gt; привел пример такого рода помощи со стороны системы типов, я бы тогда не стал говорить об отсутствии разницы между программированием на Python-е и OCaml-е.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-599467451657918755?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/_yCFLOEJjQ8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/599467451657918755/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=599467451657918755" title="Комментарии: 14" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/599467451657918755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/599467451657918755?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/_yCFLOEJjQ8/prog.html" title="[prog] Пояснение/дополнение к предыдущему посту" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>14</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/prog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEABQH45cCp7ImA9WhRVGEw.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-2876356904150402848</id><published>2012-01-17T18:05:00.001+03:00</published><updated>2012-01-17T18:05:51.028+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T18:05:51.028+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Поток сознания" /><category scheme="http://www.blogger.com/atom/ns#" term="язык OCaml" /><title>[prog] Прочитал тут статью Аарона Минского “OCaml for the Masses”…</title><content type="html">&lt;p&gt;…&lt;a href="http://queue.acm.org/detail.cfm?id=2038036"&gt;которая на acmqueue с подзаголовком “Why the next language you learn should be functional”&lt;/a&gt; (статья не новая, от 27 сентября 2011, но мне попалась на глаза случайно пару дней назад).&lt;/p&gt;  &lt;p&gt;Сразу скажу: не торкнуло меня. Не понял ни почему следующим для изучения языком должен быть функциональный, ни почему этим функциональным языком должен быть OCaml. В очередной раз вижу причину этого в том, что евангелисты функциональщины не могут привести нормальных примеров, которые заинтересовали бы обычных разработчиков вроде меня.&lt;/p&gt;  &lt;p&gt;Развитие темы под катом, поскольку букв много.&lt;/p&gt;  &lt;a name='more'&gt;&lt;/a&gt;  &lt;p&gt;Первый пример там стандартный, связанный с неким простеньким интерпретатором выражений, который на OCaml выглядит очень кратко:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; 'a expr &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;True&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;False&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;And&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;of&lt;/font&gt;&amp;#160; 'a expr &lt;font color="#ffff60"&gt;*&lt;/font&gt; 'a&amp;#160; expr&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Or&lt;/font&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;of&lt;/font&gt;&amp;#160; 'a expr &lt;font color="#ffff60"&gt;*&lt;/font&gt; 'a&amp;#160; expr&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Not&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;of&lt;/font&gt;&amp;#160; 'a expr&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Base&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;of&lt;/font&gt;&amp;#160; 'a&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;let&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;rec&lt;/font&gt; eval eval_base expr&amp;#160; &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;let&lt;/font&gt;&amp;#160; eval' x &lt;font color="#ffff60"&gt;=&lt;/font&gt; eval eval_base x &lt;font color="#ffff60"&gt;in&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;match&lt;/font&gt; expr &lt;font color="#ffff60"&gt;with&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;True&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;true&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;False&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;false&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Base&lt;/font&gt; base&amp;#160; &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt; eval_base base&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;And&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;(&lt;/font&gt;x,y&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt; eval' x &lt;font color="#ffff60"&gt;&amp;amp;&amp;amp;&lt;/font&gt; eval' y&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Or&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;(&lt;/font&gt;x,y&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt; eval' x &lt;font color="#ffff60"&gt;||&lt;/font&gt; eval' y&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Not&lt;/font&gt;&amp;#160; x&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;not&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;(&lt;/font&gt;eval' x&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;А на Java намного, сильно намного многословнее:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160; &lt;font color="#60ff60"&gt;abstract&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;interface&lt;/font&gt; Evaluator&amp;lt;T&amp;gt; { &lt;font color="#60ff60"&gt;boolean&lt;/font&gt; evaluate(T value); }&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;abstract&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator);&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; True&amp;lt;T&amp;gt; &lt;font color="#60ff60"&gt;extends&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator) { &lt;font color="#ffff60"&gt;return&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;true&lt;/font&gt;; }&amp;#160; &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; False&amp;lt;T&amp;gt; &lt;font color="#60ff60"&gt;extends&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator) { &lt;font color="#ffff60"&gt;return&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;false&lt;/font&gt;; }&amp;#160; &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; Base&amp;lt;T&amp;gt; &lt;font color="#60ff60"&gt;extends&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;final&lt;/font&gt; T value;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt; Base(T value) { &lt;font color="#60ff60"&gt;this&lt;/font&gt;.value = value; }&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator)&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; { &lt;font color="#ffff60"&gt;return&lt;/font&gt; evaluator.evaluate(value); }&amp;#160; &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; And&amp;lt;T&amp;gt; &lt;font color="#60ff60"&gt;extends&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;final&lt;/font&gt; Expr&amp;lt;T&amp;gt; expr1;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;final&lt;/font&gt; Expr&amp;lt;T&amp;gt; expr2;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt; And(Expr&amp;lt;T&amp;gt; expr1, Expr&amp;lt;T&amp;gt; expr2)&amp;#160; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;this&lt;/font&gt;.expr1 = expr1;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;this&lt;/font&gt;.expr2 = expr2;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator) {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;return&lt;/font&gt; expr1.eval(evaluator) &amp;amp;&amp;amp; expr2.eval(evaluator);&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; Or&amp;lt;T&amp;gt; &lt;font color="#60ff60"&gt;extends&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;final&lt;/font&gt; Expr&amp;lt;T&amp;gt; expr1;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;final&lt;/font&gt; Expr&amp;lt;T&amp;gt; expr2;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt; Or(Expr&amp;lt;T&amp;gt; expr1, Expr&amp;lt;T&amp;gt; expr2)&amp;#160; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;this&lt;/font&gt;.expr1 = expr1;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;this&lt;/font&gt;.expr2 = expr2;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator) {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;return&lt;/font&gt; expr1.eval(evaluator) || expr2.eval(evaluator);&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;class&lt;/font&gt; Not&amp;lt;T&amp;gt; &lt;font color="#60ff60"&gt;extends&lt;/font&gt; Expr&amp;lt;T&amp;gt; {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;final&lt;/font&gt; Expr&amp;lt;T&amp;gt; expr;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt; Not(Expr&amp;lt;T&amp;gt; expr) { &lt;font color="#60ff60"&gt;this&lt;/font&gt;.expr = expr; }&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;public&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;boolean&lt;/font&gt; eval(Evaluator&amp;lt;T&amp;gt; evaluator)&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;font color="#ffff60"&gt;return&lt;/font&gt; !expr.eval(evaluator); }&amp;#160; &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;}&amp;#160; &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Тут да, тут не поспоришь. Преимущества OCaml-а очевидны. Поэтому-то такой пример и любят приводить. Иногда даже складывается впечатление, что на ФЯ ничего кроме разбора грамматик и не делают ;)&lt;/p&gt;  &lt;p&gt;В качестве небольшой ремарки к данному примеру приведу всего лишь несколько реплик. Как давно кому-нибудь из читателей этой заметки приходилось иметь дело со столь простыми выражениями? Лично я уже и не помню. Несколько раз за всю карьеру приходилось интерпретаторы (много посложнее приведенных в примере), но тогда хватало ума использовать уже готовые генераторы парсеров, поэтому с подобными страшилками и не сталкивался.&lt;/p&gt;  &lt;p&gt;В одном же из случаев пришлось что-то вроде императивных конструкций на синтаксис конфигурационного файла натягивать. Тогда у меня на С++ получилось что-то аналогичное Java-примеру. Но и там количество прикладного кода внутри каждого из классов было настолько много, что “синтаксический оверхэд” был сосем не велик. Так что на игрушечном примере все выглядит страшно. Вспоминая же, как оно бывает на практике – уже совсем не так ;)&lt;/p&gt;  &lt;p&gt;Следующий пример должен был показать силу системы типов в поиске ошибок. Был приведен пример функции, удаляющей повторно идущие одинаковые элементы, сначала на Python:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#80a0ff"&gt;# Removes sequential duplicates, e.g., &lt;/font&gt;            &lt;br /&gt;&lt;font color="#80a0ff"&gt;# destutter([1,1,4,3,3,2])&amp;#160; = [1,4,3,2] &lt;/font&gt;            &lt;br /&gt;&lt;font color="#ffff60"&gt;def&lt;/font&gt;&amp;#160;&lt;font color="#40ffff"&gt;destutter&lt;/font&gt;(&lt;font color="#40ffff"&gt;list&lt;/font&gt;):&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; l = []&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;for&lt;/font&gt; i &lt;font color="#ffff60"&gt;in&lt;/font&gt;&amp;#160;&lt;font color="#40ffff"&gt;range&lt;/font&gt;(&lt;font color="#40ffff"&gt;len&lt;/font&gt;(&lt;font color="#40ffff"&gt;list&lt;/font&gt;)):&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;if&lt;/font&gt;&amp;#160;&lt;font color="#40ffff"&gt;list&lt;/font&gt;[i] != &lt;font color="#40ffff"&gt;list&lt;/font&gt;[i+&lt;font color="#ffa0a0"&gt;1&lt;/font&gt;]:&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; l.append(&lt;font color="#40ffff"&gt;list&lt;/font&gt;[i])&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;return&lt;/font&gt; l&amp;#160; &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;затем на OCaml:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#ffff60"&gt;let&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;rec&lt;/font&gt; destutter l &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#ffff60"&gt;match&lt;/font&gt; l &lt;font color="#ffff60"&gt;with&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;[]&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;[]&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#ffff60"&gt;|&lt;/font&gt; x &lt;font color="#ffff60"&gt;::&lt;/font&gt; y &lt;font color="#ffff60"&gt;::&lt;/font&gt; rest &lt;font color="#ffff60"&gt;-&amp;gt;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;if&lt;/font&gt;&amp;#160; x &lt;font color="#ffff60"&gt;=&lt;/font&gt; y &lt;font color="#ffff60"&gt;then&lt;/font&gt; destutter &lt;font color="#ffff60"&gt;(&lt;/font&gt;y &lt;font color="#ffff60"&gt;::&lt;/font&gt; rest&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;else&lt;/font&gt;&amp;#160; x &lt;font color="#ffff60"&gt;::&lt;/font&gt; destutter &lt;font color="#ffff60"&gt;(&lt;/font&gt;y &lt;font color="#ffff60"&gt;::&lt;/font&gt; rest&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Оба первых варианта кода содержат одинаковую ошибку – нет корректной обработки ситуации, когда в исходном списке всего один элемент. Только для OCaml-а ошибку отыскивает компилятор, т.к. он понимает, что паттерн-матчинг в destutter не содержит всех возможных вариантов. А вот для Python-овского варианта нужно делать тесты.&lt;/p&gt;  &lt;p&gt;ИМХО, такой пример скорее вреден, чем полезен. Я считаю, что разработчик должен писать код понимая, что он хочет, и что должно быть получено в итоге. А раз так, то ситуация со списком из одного элемента для разработчика должна быть даже более интересна, чем ситуация с пустым списком. Ведь именно на таком списке i-й элемент есть, а его сравнение с (i+1)-м элементом невозможно. Но разработчик поведением функции в этом случае не озаботился, т.е. проявил свою некомпетентность. Тем не менее, в варианте с OCaml-ом ему это сошло с рук.&lt;/p&gt;  &lt;p&gt;Да, я понимаю, что сильно придираюсь, и что все, даже самые компетентные (включая меня самого) ошибаются в тривиальных ситуациях. Но если речь идет о гипотетических тривиальных ошибках, то где гарантия, что OCaml будет их все ловить? Нет такой гарантии. А посему этот пример идет лесом, т.к. если гарантий нет, то все равно нужно будет делать тесты и тогда какая хрен разница, на Python-е написан код или на OCaml?&lt;/p&gt;  &lt;p&gt;Ну и последний пример. Который, якобы, более приближен к жизни, чем предыдущие. Вроде того, что есть некое TCP-соединение и нужно хранить в программе его описание. Первый вариант такой:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; connection_state &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Connecting&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Connected&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Disconnected&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; connection_info &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;{&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; state:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; connection_state&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; server:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; inet_addr&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; last_ping_time:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; time &lt;font color="#60ff60"&gt;option&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; last_ping_id:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;int&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;option&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; session_id:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#60ff60"&gt;string&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;option&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; when_initiated:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; time &lt;font color="#60ff60"&gt;option&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; when_disconnected: time&amp;#160; &lt;font color="#60ff60"&gt;option&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;}&lt;/font&gt;&amp;#160;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;а второй, использующий возможности и лаконичность OCaml-а, такой:&lt;/p&gt;  &lt;table width="100%" bgcolor="#000040"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;font color="#c0c0c0" face="monospace"&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; connecting&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;{&lt;/font&gt; when_initiated:&amp;#160; time&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;}&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; connected&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;{&lt;/font&gt; last_ping&amp;#160; : &lt;font color="#ffff60"&gt;(&lt;/font&gt;time &lt;font color="#ffff60"&gt;*&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;int&lt;/font&gt;&lt;font color="#ffff60"&gt;)&lt;/font&gt;&amp;#160;&lt;font color="#60ff60"&gt;option&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; session_id: &lt;font color="#60ff60"&gt;string&lt;/font&gt;&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;}&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; disconnected &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;{&lt;/font&gt; when_disconnected: time&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;font color="#ffff60"&gt;}&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; connection_state &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Connecting&lt;/font&gt;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;of&lt;/font&gt; connecting&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Connected&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ffff60"&gt;of&lt;/font&gt; connected&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;|&lt;/font&gt;&amp;#160;&lt;font color="#ffa0a0"&gt;Disconnected&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;of&lt;/font&gt; disconnected&amp;#160; &lt;br /&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;type&lt;/font&gt; connection_info &lt;font color="#ffff60"&gt;=&lt;/font&gt;&amp;#160;&lt;font color="#ffff60"&gt;{&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; state:&amp;#160; connection_state&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; server: inet_addr&lt;font color="#ffff60"&gt;;&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ffff60"&gt;}&lt;/font&gt;&amp;#160; &lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Но этот пример у меня ничего кроме сардонической улыбки не вызвал. Уж очень быстро такая красота увядает в проектах, которые переживают несколько версий. &lt;/p&gt;  &lt;p&gt;Во-первых, от лаконичности описаний не остается и следа (на каком бы языке программирования оно не было сделано) – на каждую строчку декларации будет приходиться по 5-10-15-и-более строк с комментариями (да еще со специальными тегами вроде @author, @version, @note, @attention и пр.).&lt;/p&gt;  &lt;p&gt;Во-вторых, может статься так, что состояний потребуется больше. И что часть информации между ними должна будет разделяться. Например, состояние Connected указывает, что установлено физическое соединение, но еще не начата логическая сессия. А для логической сессии нужно будет ввести состояние SessionOpened. Причем и для Connected, и для SessionOpened нужен будет общий счетчик пингов (например, такая ситуация есть в протоколе SMPP). Вот вновь и вылезут те самые инварианты, от поддержки которых хотелось избавиться. И простая линейная структура connection_state вновь может стать более удобной.&lt;/p&gt;  &lt;p&gt;В-третьих, если уж противопоставлять OCaml и функциональщину объектно-ориентированному виду, то почему бы на той же Java не выделить понятие StateHandler-а как аналога connection_state, а в его наследники поместить не только специфическую для состояния информацию, но еще и код по обработке соединения в этом состоянии? Еще большой вопрос что именно с течением времени окажется проще развивать и сопровождать.&lt;/p&gt;  &lt;p&gt;В общем, примеры меня ни в чем не убедили. И это главный недостаток статьи. Не языка, о котором идет речь. Поскольку как раз об OCaml-е у меня остались вполне нормальные впечатления – как раз один из тех ФЯ, которые легко осваиваются такими замшелыми императивщиками, как я.&lt;/p&gt;  &lt;p&gt;Да и вообще не понятно, зачем статья была написана. Ну есть контора JaneStreet, которая начинала свой ключевой софт в виде VBA-скриптов для Excel, затем пыталась переписать это на Java, потом на C# и OCaml. Ну пишут там сейчас 65 сотрудников на OCaml. Ну написано там за все это время 2 миллиона строк на OCaml (кстати не понятно, почему так мало). Это все понятно. К чему статью-то было писать? Если для JaneStreet OCaml – это конкурентное преимущество, то лучше было молчать в тряпочку и никому не признаваться ;)&lt;/p&gt;  &lt;p&gt;Так что статья не понравилась. Ничего нового в ней для себя не нашел. И желание заняться OCaml-ом после нее не возникло. Так что рекомендовать к прочтению не могу.&lt;/p&gt;  &lt;p&gt;А вот познакомиться с &lt;a href="http://caml.inria.fr/ocaml/index.en.html"&gt;OCaml&lt;/a&gt;-ом имеет смысл. Хотя бы для того, чтобы подружиться с &lt;a href="http://en.wikipedia.org/wiki/ML_(programming_language)"&gt;ML&lt;/a&gt;-ным синтаксисом :) Тем более, что OCaml – язык живой и даже вполне себе кроссплатформенный.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-2876356904150402848?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/GN6TZvWpW_Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/2876356904150402848/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=2876356904150402848" title="Комментарии: 16" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2876356904150402848?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2876356904150402848?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/GN6TZvWpW_Q/prog-ocaml-for-masses.html" title="[prog] Прочитал тут статью Аарона Минского “OCaml for the Masses”…" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>16</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/prog-ocaml-for-masses.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IBQng6eip7ImA9WhRVF0U.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-160997790325134476</id><published>2012-01-17T10:32:00.001+03:00</published><updated>2012-01-17T10:32:33.612+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-17T10:32:33.612+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="POCO" /><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="язык C++" /><category scheme="http://www.blogger.com/atom/ns#" term="Ссылки" /><title>[prog] Релиз POCO 1.4.3</title><content type="html">&lt;p&gt;Состоялся &lt;a href="http://pocoproject.org/blog/?p=491"&gt;релиз версии 1.4.3&lt;/a&gt; библиотеки &lt;a href="http://pocoproject.org"&gt;POCO&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Из основных изменений разработчики отмечают поддержку HTTP Digest authentication и WebSockets. А так же большое количество более мелких исправлений и улучшений. Полный список которых можно увидеть в &lt;a href="http://poco.svn.sourceforge.net/viewvc/poco/poco/branches/poco-1.4.3/CHANGELOG"&gt;CHANGELOG&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-160997790325134476?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/iB5C3x-gMM8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/160997790325134476/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=160997790325134476" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/160997790325134476?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/160997790325134476?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/iB5C3x-gMM8/prog-poco-143.html" title="[prog] Релиз POCO 1.4.3" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/prog-poco-143.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8BRXs9eip7ImA9WhRVF00.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-3580805742673074880</id><published>2012-01-16T12:07:00.001+03:00</published><updated>2012-01-16T12:07:34.562+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-16T12:07:34.562+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="Дартс" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.darts] Завершился Чемпионат Мира по версии BDO/WDF</title><content type="html">&lt;p&gt;В этом году Чемпионат Мира по версии BDO/WDF оказался интереснее чем аналогичное PDC-шное мероприятие. А все благодаря двум “старичкам” – Теду Ханки (15 номер мирового рейтинга) с Тони О’Ши (8 номер рейтинга), и двум молодым, мало кому известным голландцам – 27-ми летнему Уэсли Хармсу (13 номер рейтинга) и 25-летнему Кристиану Кисту. Именно эта четверка, как нож сквозь масло, прошла через все раунды чемпионата и разыграла увлекательные полуфиналы.&lt;/p&gt;  &lt;p&gt;В первом полуфинале Тед Ханки встречался с Кристианом Кистом. И ведя в матче до 6 побед со счетом 5-3 не смог сдержать свои нервы. Из-за чего проиграл 5-6. Хотя, пожалуй, именно Тед Ханки был тем единственным человеком на Чемпионате, который мог остановить Киста.&lt;/p&gt;  &lt;p&gt;Во втором полуфинале до самого последнего сета упорно боролись Тони О’Ши и Уэсли Хармс. Было видно, что Тони собрал весь свой опыт, весь свой характер для того, чтобы одолеть молодого целеустремленного голландца (очень похожего, кстати говоря, на молодого Роберта Патрика в роли T-1000 во втором Терминаторе). Мне показалось, что все решил внезапный перерыв перед последним, решающим сетом. В этом перерыве Тони О’Ши смог восстановиться, а Хармс, напротив, потерял концентрацию. Что и позволило О’Ши победить и попасть в свой второй в карьере финал Чемпионата Мира (первый он проиграл в 2009 году Теду Ханки).&lt;/p&gt;  &lt;p&gt;К сожалению, все силы Тони отдал в полуфинале и в финале это было заметно. Если в начале соперники еще были более менее равны – до счета 2-2 они отбирали сет за сетом друг у друга, то после 2-2 Кист резко пошел в отрыв и, хоть с трудом, но быстро довел счет до 6-2 в свою пользу. И это в матче до 7 побед!&lt;/p&gt;  &lt;p&gt;При счете 2-6 О’Ши вновь проявил весь свой характер и все свое мастерство, выиграл три сета подряд и чуть было не возродил интригу в матче, доведя счет до 5-6. Но это уже был последний резерв, который истощился и противопоставить Кисту что-нибудь еще О’Ши уже не смог.&lt;/p&gt;  &lt;p&gt;Кристиан Кист, человек, которого знали только специалисты, который выбился на Чемпионат через сито квалификаций, а не по рейтингу, сенсационно стал Чемпионом Мира!&lt;/p&gt;  &lt;p&gt;Кист повторил уникальные достижения Кейта Деллера (Чемпион 1983, обыграл в финале Эрика Бристоу) и Йелле Классена (Чемпион 2006, обыграл в финале Раймонда ван Барнивельда). Те так же начинали свои чемпионаты “черными лошадками”, но выигрывали главный трофей.&lt;/p&gt;  &lt;p&gt;Имхо, этот чемпионат показал, что такое спорт. Не важно, сколько у тебя титулов в прошлом, не важно, какие у тебя были заслуги и достижения. Важна твоя нынешняя форма, твой нынешний настрой. Ну и нынешнее отношение к тебе со стороны госпожи Удачи, поскольку без ее участия здесь не обошлось, имхо. Ведь Теду Ханки на своем пути пришлось встретиться со Скотом Уэйтсом (которому предрекали победу специалисты), Тони О’Ши обыграл 3-х кратного чемпиона Мартина Адамса (ни много, ни мало, а номер один мирового рейтинга). Но самый трудный путь к полуфиналу, на мой взгляд, оказался у Уэсли Хармса, которому пришлось по дороге обыграть не кого-нибудь, а Дина Уистанли (прошлогоднего финалиста, еще одного явного претендента, которому прочили титул). У Киста же первый по-настоящему серьезный соперник встретился лишь в полуфинале. Но ведь Удача – это так же элемент спорта.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-3580805742673074880?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/eNHM7HD82Fo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/3580805742673074880/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=3580805742673074880" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/3580805742673074880?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/3580805742673074880?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/eNHM7HD82Fo/lifesportdarts-bdowdf.html" title="[life.sport.darts] Завершился Чемпионат Мира по версии BDO/WDF" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifesportdarts-bdowdf.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkUDRHs_fCp7ImA9WhRVFk8.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-1827590086392660610</id><published>2012-01-15T12:37:00.001+03:00</published><updated>2012-01-15T12:37:55.544+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-15T12:37:55.544+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Подсмотренное" /><category scheme="http://www.blogger.com/atom/ns#" term="Humour" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.humour] Все остальное свежее</title><content type="html">&lt;p&gt;Только что подслушанный в торгующем сдобой ларьке диалог покупателя и продавца:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;-- Мне две булочки “Брестские” и…     &lt;br /&gt;-- “Брестские” вчерашние.      &lt;br /&gt;-- А какие свежие?      &lt;br /&gt;-- Все остальные свежие.      &lt;br /&gt;-- Тогда две “Ароматные” и…      &lt;br /&gt;-- “Ароматные” то же вчерашние!&lt;/p&gt;&lt;/blockquote&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-1827590086392660610?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/dDuEHrynaXQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/1827590086392660610/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=1827590086392660610" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/1827590086392660610?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/1827590086392660610?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/dDuEHrynaXQ/lifehumour.html" title="[life.humour] Все остальное свежее" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifehumour.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUAHQXk8cCp7ImA9WhRVFU4.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-6239588426612003834</id><published>2012-01-14T12:35:00.001+03:00</published><updated>2012-01-14T12:35:30.778+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-14T12:35:30.778+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О компьютерах" /><title>[comp.vintage] Вот такой вот раритет почти…</title><content type="html">&lt;p&gt;…валялся у меня без дела лет восемь – HP OmniBook 2000CS:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://lh6.googleusercontent.com/-rLHvxQApYiQ/TxFFNP3U0pI/AAAAAAAACHQ/ammvgX4VNY0/s800/hp_omnibook_2000cs.jpg"&gt;&lt;img src="https://lh6.googleusercontent.com/-rLHvxQApYiQ/TxFFNP3U0pI/AAAAAAAACHQ/ammvgX4VNY0/s800/hp_omnibook_2000cs.jpg" height="640" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Если не ошибаюсь, то конфигурация такая: Pentium 133MHz, 32Mb RAM, 1.3GB HDD, DSTN-овская VGA матрица 800x600. Из портов – VGA, PS/2, COM, Infrared, 2 PCIMCA.&lt;/p&gt;  &lt;p&gt;Купил в самом начале 2001-го где-то за $350, если не ошибаюсь. Для того, чтобы была возможность дома хоть что-то программировать для себя. Поскольку на тогдашней работе (а я ушел из КБСП и устроился в EPAm) такое это уже не поощрялось.&lt;/p&gt;  &lt;p&gt;Сейчас это может показаться смешным, но тогда у меня на этом буке с 1.3Gb винтом стояло целых две операционки – WinNT 4.0 и Linux. И под обоими было место для работы.&lt;/p&gt;  &lt;p&gt;Более того, свои первые шаги в Интервэйл, тогда еще по совместительству, я делал с помощью этого компьютера. Моей первой задачей было разобраться с устройством информации на SIM-картах – для чего я выкуривал кучу GSM-мовских стандартов, учился работать со SmartCard-ридерами через PS/SC, для чего к буку к COM-порту цеплялся внешний девайс (если не ошибаюсь, это был ридер производства Towitoko). Именно работая на этом компьютере я окончательно стал приверженцем lower_case нотации :)&lt;/p&gt;  &lt;p&gt;Правда работал я на нем не долго, может быть с полгода. Потом пересел на более мощную, современную по тем временам технику :)&lt;/p&gt;  &lt;p&gt;Последние лет восемь бук валялся без дела у меня в столе. Помнится хотел поставить на него NetBSD без X-ов, чтобы была машинка для экспериментов с хардкорным Unix-ом. Но что-то не пошло и я на это дело забил. С тех пор он и лежал мертвым грузом с убитой системой.&lt;/p&gt;  &lt;p&gt;Сейчас чтобы освободить место извлек раритет на свет. Нашел загрузочные 1.44Mb MS-DOS-овские дискеты(!!!), с помощью внешнего переходника IDE-USB залил на винт бука дистрибутив Win95 и драйвера от производителя (удивительно, но на сайте HP до сих пор есть архив с драйверами для этой модели компьютера). Все встало, все работает, даже звук есть! :))) Удивительно просто.&lt;/p&gt;  &lt;p&gt;В общем, к чему я это все. Если кому такое чудо вдруг надо – ностальгия там, коллекционирование или же нужен старый комп для DOS-овских программ с COM-портом, ну или еще для чего – то отдам безвоздмездно, т.е. даром :)&lt;/p&gt;  &lt;p&gt;Если же никому не нужен, то вскоре он отправиться на свалку. Поскольку для истории у меня есть еще более древний, а значит и еще более ценный раритет – Toshiba-вский lap-top с 386-м процессором, 100MB HDD и 4MB RAM ;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-6239588426612003834?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/KiViEtLwz6A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/6239588426612003834/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=6239588426612003834" title="Комментарии: 5" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/6239588426612003834?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/6239588426612003834?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/KiViEtLwz6A/compvintage.html" title="[comp.vintage] Вот такой вот раритет почти…" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh6.googleusercontent.com/-rLHvxQApYiQ/TxFFNP3U0pI/AAAAAAAACHQ/ammvgX4VNY0/s72-c/hp_omnibook_2000cs.jpg" height="72" width="72" /><thr:total>5</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/compvintage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EFRnw4eyp7ImA9WhRVFU8.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-5303875705666980492</id><published>2012-01-14T11:26:00.001+03:00</published><updated>2012-01-14T11:26:57.233+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-14T11:26:57.233+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Внезапно" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life] Да уж…</title><content type="html">&lt;p&gt;Николай Валуев в думе:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://online.wsj.com/media/011312pod14_J.jpg"&gt;&lt;img src="http://online.wsj.com/media/011312pod14_J.jpg" width="640" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Снимок найден &lt;a href="http://blogs.wsj.com/photojournal/2012/01/13/photos-of-the-day-jan-13-2/2/"&gt;в очередном выпуске WSJ’s Photos of the Day&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-5303875705666980492?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/gCvO2tzn54M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/5303875705666980492/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=5303875705666980492" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/5303875705666980492?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/5303875705666980492?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/gCvO2tzn54M/life.html" title="[life] Да уж…" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/life.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QMQng6cSp7ImA9WhRVFU8.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-3625843078563704616</id><published>2012-01-14T10:16:00.001+03:00</published><updated>2012-01-14T10:16:23.619+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-14T10:16:23.619+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="Дартс" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.darts] Анастасия Добромыслова выиграла свой второй Чемпионат Мира!</title><content type="html">&lt;p&gt;&lt;a href="http://www.dartswdf.com/lakeside2012/Hedman_Dobromyslova.htm"&gt;Вчера, обыграв в финале Чемпионата Мира по версии BDO Дету Хедман, россиянка Анастасия Добромыслова взяла свой второй титул!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.unicorn-darts.com/upload/blog/posts/mainimages/nb2598.JPG" /&gt;&lt;/p&gt;  &lt;p&gt;Причем до этого, в полуфинале, Добромысловой была бита 9-кратная чемпионка Трина Гулливер. Так что победа в Чемпионате не просто заслуженная, а выдающаяся.&lt;/p&gt;  &lt;p&gt;От души поздравляю Анастасию и всех российских спортсменов с этой исторической победой. Очень надеюсь, что не последней.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-3625843078563704616?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/8K1SMhy62fo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/3625843078563704616/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=3625843078563704616" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/3625843078563704616?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/3625843078563704616?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/8K1SMhy62fo/lifesportdarts.html" title="[life.sport.darts] Анастасия Добромыслова выиграла свой второй Чемпионат Мира!" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifesportdarts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8FRH48fSp7ImA9WhRVFEs.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-4422693346220061204</id><published>2012-01-13T16:53:00.001+03:00</published><updated>2012-01-13T16:53:35.075+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-13T16:53:35.075+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Ссылки" /><title>[prog.tales] На тему 10-кратной разницы в производительности разработчиков</title><content type="html">&lt;p&gt;Разыскивая в истории переписки с коллегой какую-то совершенно левую ссылку обнаружил два интересных URL-а:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.construx.com/blogs/stevemcc/archive/2008/03/27/productivity-variations-among-software-developers-and-teams-the-origin-of-quot-10x-quot.aspx"&gt;Productivity Variations Among Software Developers and Teams: The Origin of &amp;quot;10x&amp;quot;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://blogs.construx.com/blogs/stevemcc/archive/2008/03/31/chief-programmer-team-update.aspx"&gt;Chief Programmer Team Update&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Небольшая цитата из первой ссылки:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;There is also lots of anecdotal support for the large variation between programmers. During the time I was at Boeing in the mid 1980s, there was a project that had about 80 programmers working on it that was at risk of missing a critical deadline. The project was critical to Boeing, and so they moved most of the 80 people off that project and brought in one guy who finished all the coding and delivered the software on time. I didn't work on that project, and I didn't know the guy, so I'm not 100% sure the story is even true. But I heard the story from someone I trusted, and it seemed true at the time.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Т.е. была такая байка о проекте в Боинге – когда 80 человек пытались сделать очень важный для Боинга проект, то большинство из них уволили, а взяли на их место всего одного программиста, который все и сделал. Правдивость этой байки, однако, сложно проверить.&lt;/p&gt;  &lt;p&gt;Однако, данная байка согласуется с моим собственным наблюдением – в условиях ограниченных ресурсов лучше поручить работу 1-2 талантливым людям, которые все сами сделают… Что, на мой взгляд, имеет вполне разумное объяснение – ведь чем больше людей работают над общей проблемой, тем больше элементарные накладные расходы на коммуникации между ними. Не говоря уже о том, чтобы привести их всех к “общему знаменателю”, т.е. нивелировать их собственные желания и устремления, предпочтения и взгляды на “правильные” направления, устранить споры по поводу способов реализации и пр. огранизационно-политическо-педагогическую лабуду.&lt;/p&gt;  &lt;p&gt;А проблема, собственно, в том, чтобы заиметь в своей конторе этих 1-2 талантливых людей… Для каждого из проектов.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-4422693346220061204?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/VLtgx7Zcicw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/4422693346220061204/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=4422693346220061204" title="Комментарии: 1" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/4422693346220061204?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/4422693346220061204?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/VLtgx7Zcicw/progtales-10.html" title="[prog.tales] На тему 10-кратной разницы в производительности разработчиков" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/progtales-10.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcCRXs4cCp7ImA9WhRVE0s.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-1864842084910866663</id><published>2012-01-12T13:27:00.001+03:00</published><updated>2012-01-12T13:27:44.538+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-12T13:27:44.538+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Humour" /><title>[prog.humour] Благозвучность</title><content type="html">&lt;p&gt;Пытаюсь тут думать над более удобной системой передачи сообщений между нашими самодельными C++ными компонентами. Пока в голове крутится идея сущности под условным названием “трубопровод” – ряд компонентов образуют одну непрерывную последовательность из нескольких “труб”, по которой идет поток обрабатываемых сообщений. Т.е. компоненты связаны “трубами”, а несколько таким образом связанных компонентов образуют “трубопровод”.&lt;/p&gt;  &lt;p&gt;И если “трубопровод” звучит терпимо, хоть и не так солидно, как “пайплайн” (анг. pipeline), то вот уже “труба” совсем не солидно. И ведь, что обидно, термин “пайп” (анг. pipe) в софтверной терминологии уже устоялся и обозначает совершенно конкретный тип межпроцессового взаимодействия (пусть и реализуемый в разных ОС по разному). Поэтому остается только оперировать названием “труба”. Что, впрочем, намекает на то, что труба будет всей идее :)&lt;/p&gt;  &lt;p&gt;А еще вырисовалась необходимость в специальной сущности, которая будет позволять связывать между собой разные трубопроводы. Называется эта сущность, понятное дело, pipeline_commutation_point. Сокращенно PCP. Что на русском звучит как ПИ-СИ-ПИ. В зависимости от того, как (не)расставить дефисы получаются разные забавные акценты ;)&lt;/p&gt;  &lt;p&gt;Вот ведь, какая фигня приходит в голову, когда выкуривание основной идеи заходит в тупик. О благозвучности задумываешься, нет чтобы понять, чего же ты хочешь в итоге! :)&lt;/p&gt;  &lt;p&gt;PS. Вспоминается древняя байка про рекламное объявление по радио – “Организация реализует со склада новые компьютеры Один-Вэ-Эм Эр-Эс Ха-Тэ А-Тэ”.&lt;/p&gt;  &lt;p&gt;PPS. Кстати, шутки шутками, но в школе я учил французский язык. И когда поступил в университет не сразу понял, почему компьютеры называют Ай-Би-Эмки, хотя пишут IBM :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-1864842084910866663?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/HVr6zUO3nFM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/1864842084910866663/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=1864842084910866663" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/1864842084910866663?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/1864842084910866663?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/HVr6zUO3nFM/proghumour.html" title="[prog.humour] Благозвучность" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/proghumour.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IBRXw5eCp7ImA9WhRVEUQ.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-3582016924107886695</id><published>2012-01-10T15:45:00.001+03:00</published><updated>2012-01-10T15:45:54.220+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-10T15:45:54.220+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О компьютерах" /><category scheme="http://www.blogger.com/atom/ns#" term="Ссылки" /><title>[comp] Ресурс Ubuntu Boot Speed Tracking</title><content type="html">&lt;p&gt;В поиске фактов для обсуждения &lt;a href="http://eao197.blogspot.com/2012/01/comp.html"&gt;вот этой заметки&lt;/a&gt; нашел &lt;a href="http://reports.qa.ubuntu.com/reports/boot-speed/"&gt;ресурс Ubuntu Boot Speed Tracking&lt;/a&gt;. На нем показываются результаты тестирования скорости загрузки текущих версий дистрибутивов Ubuntu на нескольких платформах (ссылка найдена &lt;a href="http://news.softpedia.com/news/Ubuntu-Boot-Speed-Tracker-Available-Now-240044.shtml"&gt;здесь&lt;/a&gt;).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-3582016924107886695?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/oYaiINrLx9c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/3582016924107886695/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=3582016924107886695" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/3582016924107886695?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/3582016924107886695?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/oYaiINrLx9c/comp-ubuntu-boot-speed-tracking.html" title="[comp] Ресурс Ubuntu Boot Speed Tracking" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/comp-ubuntu-boot-speed-tracking.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkAMRnsyeyp7ImA9WhRVEU8.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-8811138853449316514</id><published>2012-01-09T17:53:00.001+03:00</published><updated>2012-01-09T17:53:07.593+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-09T17:53:07.593+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Отдых" /><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="Дартс" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.darts] Впечатления от дротиков Target New MatchPlay 80% 24g</title><content type="html">&lt;p&gt;В прошлый раз я рассказывал &lt;a href="http://eao197.blogspot.com/2012/01/lifesportdarts-designer-tungsten-darts.html"&gt;о 80% дротиках D47&lt;/a&gt;, но за несколько дней до них ко мне в руки попал еще один комплект 80% дротиков – Target New MatchPlay. Рассказ об этих дротиках с фотографиями под катом.&lt;/p&gt;  &lt;a name='more'&gt;&lt;/a&gt;  &lt;p&gt;Причин для покупки нового комплекта было две:&lt;/p&gt;  &lt;p&gt;- во-первых, я закупал разную мелочь и сумма заказа оказалась не слишком большой, чтобы оправдать стоимость доставки. Поэтому я включил в заказ комплект недорогих дротиков (точно так же, как я поступил с D47). Плюс к тому, посылка с D47 настолько сильно задерживалась, что я вообще уже не рассчитывал ее получить, поэтому и делал новую закупку;&lt;/p&gt;  &lt;p&gt;- во-вторых, хотелось проверить свою версию причины, по которой у меня часто срывались броски при игре дротиками Mark Walsh.&lt;/p&gt;  &lt;p&gt;Дротики Mark Walsh я держу вот так:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh5.googleusercontent.com/-GBH4hQYcZ7M/TwqwH9Pz95I/AAAAAAAACGw/JlC1XQNCbTU/s800/target_mark_walsh_in_hand.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Т.е. основной хват ближе к второй половине нарезки на барреле. А средний палец располагается на носовой части барреля, ближе к игле. И я стал подозревать, что во время броска средний палец соскальзывает с барреля к игле из-за чего бросок оказывался испорченным. Таких вещей не происходило на других моделях дротиков (за исключением &lt;a href="http://eao197.blogspot.com/2010/10/lifesportdarts-target-silica-apollo-22g.html"&gt;Target Silica Apollo&lt;/a&gt; и &lt;a href="http://eao197.blogspot.com/2011/04/lifesportdarts-nodor-nr-502-95-22g.html"&gt;Nodor NR-502&lt;/a&gt;), поскольку там не было такого носового конуса и средний палец мог устойчиво фиксироваться на барреле рядом с иглой.&lt;/p&gt;  &lt;p&gt;А вот на 24g модели Target MatchPlay все было сделано как будто под мой хват:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/-PlpFT2cpH5w/TwqwKQxfMiI/AAAAAAAACG4/viFw4LJXR54/s800/target_newmatchplay_24g_in_hand.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Т.е. и “жеванная” нарезка как раз там, где я берусь указательным и большим пальцами, и более длинный прямой нос с углублениями для того, чтобы средний палец не соскальзывал.&lt;/p&gt;  &lt;p&gt;Плюс, цена на эти Target-овские дротики совсем не большая – ~11GBP, так что грех было не попробовать. Потому и заказал. Причем на PureDarts.co.uk было два вида дротиков MatchPlay – &lt;a href="http://www.puredarts.co.uk/categories/target_matchplay.php"&gt;старая серия&lt;/a&gt; (с разноцветной раскраской и простой иглой) и &lt;a href="http://www.puredarts.co.uk/categories/new_target_match_play.php"&gt;новая (как раз под названием New MatchPlay&lt;/a&gt;, с черной раскраской и понтовой иглой Target Diamond). Старая где-то на 1GBP дешевле, её-то я и покупал. Но пришла ко мне модель New MatchPlay :)&lt;/p&gt;  &lt;p&gt;Дротики пришли в более простом, нежели 90% Target-овские дротики, оформлении:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/-OwD0Mkt7Hog/TwmMXIUZS5I/AAAAAAAACGU/3cG4Z-dXPbw/s800/target_newmatchplay_24g_boxed.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/-fC4u74hKIWw/TwmMWjGffSI/AAAAAAAACGM/Zls5tf5LjQ4/s800/target_newmatchplay_24g_box_opened.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Этот пластиковый кейс хитро устроен – у него две крышки. Верхняя открывает отсек для дротиков, вторая, снизу – отсек для запасных перышек и хвостиков. Называется эта штука Tri-Fold Plastic Case.&lt;/p&gt;  &lt;p&gt;Вот так полностью снаряженные New MatchPlay выглядят рядом с 24g Mark Walsh:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/-fRbTxRO6tSE/TwmMVVT_xOI/AAAAAAAACF4/5tNlOSeMN-Q/s800/target_newmatchplay_24g_against_walshe.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;А вот так выглядят баррели трех моделей – Mark Walsh, New MatchPlay и D47:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh5.googleusercontent.com/-SQGtSrq0imw/TwmMVdIi2-I/AAAAAAAACF8/_dQ_o91Reks/s800/target_newmatchplay_24g_barrels_compare.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Размеры барреля New MatchPlay:&lt;/p&gt;  &lt;p&gt;длина – 47.5 мм,    &lt;br /&gt;толщина в самом широком месте – 7.4 мм,     &lt;br /&gt;толщина в носовой части – 7.2 мм.&lt;/p&gt;  &lt;p&gt;Т.е. баррель чуть побольше, чем у Walsh-ей, и заметно побольше, чем у D47. Хотя 180 сделать ими не проблема, места в T20 хватает с запасом:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh4.googleusercontent.com/-YhmrxS-FMT8/TwmMVjrgFRI/AAAAAAAACGA/ljpGQ6QaHZY/s800/target_newmatchplay_24g_180.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;К качеству изготовления дротиков претензий нет никаких. По внешнему виду от более дорогих 90% моделей не отличить, все сделано очень качественно и аккуратно.&lt;/p&gt;  &lt;p&gt;Теперь субъективные впечатления.&lt;/p&gt;  &lt;p&gt;У меня почему-то игра этими дротиками не пошла :(&lt;/p&gt;  &lt;p&gt;С одной стороны, мои подозрения по поводу хвата Walsh-ей полностью подтвердились. Держать New MatchPlay мне действительно удобнее – нарезка сделана именно там, где я берусь пальцами.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Но, с другой стороны, удовольствия от игры этими дротиками нет. И я не понял почему. Возможно, “жеванная” нарезка на барреле занимает больше места, чем на Walsh-ах и чуть более агрессивна – сильнее цепляется за подушечки пальцев. Поэтому нет плавного отпускания дротика при броске. Да и после нескольких часов тренировок пальцы “горят” намного сильнее, чем от Walsh-ей.&lt;/p&gt;  &lt;p&gt;Вообще-то говоря, эта “жеванная” нарезка со временем стирается (от того, что дротики часто бьются друг об друга при входе в мишень), так что, если потерпеть пару месяцев, это ситуация вполне может измениться. Но дело в том, что броски с D47 изначально пошли лучше. Так что New MatchPlay моими основными дротиками не стали.&lt;/p&gt;  &lt;p&gt;Отдельно можно сказать про Diamond иглы. Забавная штука. Поначалу дротики извлечь из мишени было не просто. Я уже даже стал серьезно опасаться за мишень. Но через пару дней острые канавки на иглах чуть сточились и дротики стали выниматься без особых проблем. Так что иглы как иглы, выглядят разве что посимпатичнее обычных. Ну и коротковаты на мой вкус.&lt;/p&gt;  &lt;p&gt;Резюмирую. При моем хвате дротика нужно было вместо Mark Walsh покупать эти MatchPlay. Держатся в руке намного надежнее, и стоят серьезно дешевле. А если еще и иглы заменить на 30-мм, то даже их довольно толстый нос перестанет влиять на плотность попаданий. Так что если кто-то ищет именно Target-овские дротики, то есть смысл сначала посмотреть на серию &lt;a href="http://www.puredarts.co.uk/categories/new_target_match_play.php"&gt;MatchPlay&lt;/a&gt; (тем более, что по качеству и внешнему виду от 90% они ничем не отличаются).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-8811138853449316514?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/wZA4nSsgRqA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/8811138853449316514/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=8811138853449316514" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8811138853449316514?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8811138853449316514?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/wZA4nSsgRqA/lifesportdarts-target-new-matchplay-80.html" title="[life.sport.darts] Впечатления от дротиков Target New MatchPlay 80% 24g" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-GBH4hQYcZ7M/TwqwH9Pz95I/AAAAAAAACGw/JlC1XQNCbTU/s72-c/target_mark_walsh_in_hand.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifesportdarts-target-new-matchplay-80.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8EQXg5fyp7ImA9WhRVEEw.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-8727252226343376677</id><published>2012-01-08T11:20:00.001+03:00</published><updated>2012-01-08T11:20:00.627+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-08T11:20:00.627+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Внушаить" /><category scheme="http://www.blogger.com/atom/ns#" term="Афигеть" /><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.video] Скоростной спуск с холма в трущобах на велосипеде</title><content type="html">&lt;p&gt;Оказывается, существуют и такие соревнования. Где-нибудь в Южной Америке выбирается городок, по его улочкам прокладывается трасса и отчаянные велосипедисты несутся вниз, к финишу.&lt;/p&gt;  &lt;p&gt;Вот как это выглядит со стороны:&lt;/p&gt; &lt;iframe height="480" src="http://www.youtube.com/embed/8N7vxuAZsUA?rel=0" frameborder="0" width="640" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;p&gt;А вот что видит сам гонщик:&lt;/p&gt; &lt;iframe height="360" src="http://www.youtube.com/embed/pAz4RYxDc8s?rel=0" frameborder="0" width="640" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;p&gt;Вот уж на самом деле – безумству храбрых…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-8727252226343376677?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/-QaIqd8NYiI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/8727252226343376677/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=8727252226343376677" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8727252226343376677?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8727252226343376677?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/-QaIqd8NYiI/lifesportvideo.html" title="[life.sport.video] Скоростной спуск с холма в трущобах на велосипеде" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/8N7vxuAZsUA/default.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifesportvideo.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEBQno7fSp7ImA9WhRWGU8.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-2762098816499426011</id><published>2012-01-07T10:50:00.001+03:00</published><updated>2012-01-07T10:50:53.405+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-07T10:50:53.405+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О компьютерах" /><category scheme="http://www.blogger.com/atom/ns#" term="Павбывавбы" /><title>[comp] Провокационное сравнение, однако…</title><content type="html">&lt;iframe height="360" src="http://www.youtube.com/embed/vLwntYxW4rU?rel=0" frameborder="0" width="640" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;p&gt;Так и хочется задать несколько вопросов: Ну и почему этими замечательными 8MHz машинами не пользуются сейчас? Почему они не вытесняют тормознутые 1600MHz поделия с рынка? С какого хера вообще нужно такие сравнения проводить? И т.д.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-2762098816499426011?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/ctAo7FdNj_k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/2762098816499426011/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=2762098816499426011" title="Комментарии: 6" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2762098816499426011?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2762098816499426011?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/ctAo7FdNj_k/comp.html" title="[comp] Провокационное сравнение, однако…" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/vLwntYxW4rU/default.jpg" height="72" width="72" /><thr:total>6</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/comp.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUEQnwzeCp7ImA9WhRWGE4.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-161012537095902087</id><published>2012-01-06T10:50:00.001+03:00</published><updated>2012-01-06T10:50:03.280+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-06T10:50:03.280+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><title>[prog] Прочитал несколько интервью Бертранда Мейера (часть 2)</title><content type="html">&lt;p&gt;Очень интересным оказалось &lt;a href="http://www.kommersant.ru/doc/1773357/print"&gt;интервью Бертранда Мейера “КоммерсантЪ”-у&lt;/a&gt;. Особенно вот эта цитата, которая предсказывает судьбу подготовки “самых лучших программистов в мире” (выражение в кавычках мое):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Что касается подготовки программистов в России, по-моему, есть очень большой риск. Сила российской школы программирования — это сила русского образования, особенно математической традиции. Именно благодаря ей русские программисты успешны. Но это заслуга советских и даже дореволюционных традиций образования и науки. Я в последнее время много говорил с коллегами о том, что происходит в российской средней и высшей школе, и мне кажется, это довольно страшно. Мало профессоров, особенно среднего возраста — это катастрофа. Мне кажется, что студенты не так сильно интересуются программированием, как интеллектуальной деятельностью. Для них это изначально инструмент зарабатывания денег. Поэтому они больше интересуются достаточно поверхностными навыками вроде web-дизайна. Просто не понимают, что настоящее серьезное, трудное программирование — это увлекательный труд. Возможно, потому, что нет тех, кто мог бы им это объяснить. И вполне вероятно, что через пять-десять лет вся база, на которой основан успех российской программистской отрасли, разрушится. А больше ничего нет. Исчезновение научной и математической базы — это самый большой риск. Конечно, если говорить об ITMO, СПБГУ, политехе МГУ и еще десятке вузов — там проблем нет. Но в вузах второго ранга, даже хороших, все гораздо проблемнее.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Поскольку у Мейера свежий взгляд со стороны, да еще он более-менее в теме высшего образования в России, то, боюсь, он прав :(&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-161012537095902087?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/Lui11I8u95c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/161012537095902087/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=161012537095902087" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/161012537095902087?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/161012537095902087?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/Lui11I8u95c/prog-2.html" title="[prog] Прочитал несколько интервью Бертранда Мейера (часть 2)" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/prog-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAERn09cSp7ImA9WhRWF0U.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-2024392990998611735</id><published>2012-01-05T21:05:00.001+03:00</published><updated>2012-01-05T21:05:07.369+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-05T21:05:07.369+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="Дартс" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.darts] Первые впечатления от дротиков Designer Tungsten Darts 80% 24g</title><content type="html">&lt;p&gt;Сегодня таки дождался очередной посылки из Англии, которая добиралась ко мне почти полтора месяца. И стал обладателем на удивление хороших дротиков, которые на PureDarts.co.uk продаются под маркой &lt;a href="http://www.puredarts.co.uk/store/darts.php?c=Designer+Tungsten+Darts"&gt;Designer Tungsten Darts&lt;/a&gt; – 80% 24-граммовая модель &lt;a href="http://www.puredarts.co.uk/darts/d47-24gms_out_of_stock-d47_-_80_tungsten_24g.php"&gt;D47&lt;/a&gt;. Чуть-чуть подробностей и фотографий под катом.&lt;/p&gt;  &lt;a name='more'&gt;&lt;/a&gt;  &lt;p&gt;Для начала скажу, почему я их купил. Это был чистой воды сопутствующий товар ;) На PureDarts появилась в продаже такая штука, как &lt;a href="http://www.puredarts.co.uk/darts/8365-wizlock-flightpunch_winmau_8365_wizlock_flight_punch.php"&gt;Winmau Whizlock&lt;/a&gt; – очень любопытная вещь, которую страшно хотелось попробовать. Но доставка на PureDarts обходится в 10GBP, что значительно дороже, чем Whizlock. Поэтому, чтобы “зря машину не гонять”, решил прикупить себе так же новый кейс для дротиков. Но и этого было мало, чтобы компенсировать стоимость доставки. Поэтому заодно еще взял и самые дешевые 24g дротики, которые мне понравились по форме барреля.&lt;/p&gt;  &lt;p&gt;Поскольку дротики я покупал просто для балласта, то ничего от них не ждал совершенно. Более того, посылка так долго где-то шлялась по дороге в Беларусь, что даже если хоть какие-то ожидания от покупки и были, то они полностью улетучились. Тем сильнее было мое удивление от дротиков, когда они таки оказались у меня в руках.&lt;/p&gt;  &lt;p&gt;Находились дротики в простом дешевом чехле из кожзаменителя (что вообще-то за счастье при цене комплекта в 9.16GBP):&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/-XnLY1Ku4sDE/TwXRlFiEtZI/AAAAAAAACE4/LaPEMgJmqjI/s800/d47_in_box.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Внутри оказались – дротки с point-protector-ом, нейлоновые short-хвостики и стандартной формы перышки:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/-qJQ8HdV3cAc/TwXRnw_CakI/AAAAAAAACFY/sgr17L2hIno/s800/d47_out_of_box.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Причем, PureDarts меня в очередной раз удивил. Видимо, комплекты дешевых дротиков они собирают сами прямо при формировании посылки. Поэтому включают в комплектацию те элементы, которые попутно закупает клиент. Как-то в прошлом году они мне в набор включили комплект таких же перьев, которые я покупал одновременно с дротиками. В этот раз в заказ я включил еще три комплекта вот таких чисто белых (называемых Fluro Snow) коротких хвостика. Их-то мне и добавили к дротикам. Пустячок, а приятно :)&lt;/p&gt;  &lt;p&gt;Вот так дротики выглядят в полной боевой комплектации (только я поставил свои medium-хвостики и другие перья, с комплектов Whizlock-ов):&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/-imaas2zreQ8/TwXRnZKHWsI/AAAAAAAACFQ/yIHRyuENVsc/s800/d47_loaded.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Чем я еще был поражен, так это тем, что в очень дешевых дротиках стояли точно такие же иглы, какие Target ставит в свои совсем недешевые модели. Например, такие же 26мм иглы изначально стояли &lt;a href="http://eao197.blogspot.com/2011/10/lifesportdarts-target-mark-walsh-90-24g.html"&gt;в модели Mark Walsh&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Правда, именно иглы пока являются единственным выявленным за несколько часов игры недостатком этих дротиков. Но об этом ниже.&lt;/p&gt;  &lt;p&gt;Вот так дротики выглядят рядом с моделью Mark Walsh, так же 24-граммовой, но 90-процентной:&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh5.googleusercontent.com/-1dVj3N6DRWg/TwXRnT_6uGI/AAAAAAAACFU/RRdQF71BYdo/s800/d47_loaded_against_walshe.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/-80J6OG84VS4/TwXRk1Ky_7I/AAAAAAAACFA/Q2MJpXtvPzw/s800/d47_barrel_against_walshe.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Это удивительно, но явно видно, что 80% баррель имеет меньший объем, чем 90% баррель! Его размеры таковы:&lt;/p&gt;  &lt;p&gt;длина – 45.7мм,    &lt;br /&gt;толщина в самом широком месте – 7.15мм,     &lt;br /&gt;толщина в самом узком месте – 6.3мм.&lt;/p&gt;  &lt;p&gt;Поверхность дротиков гладкая, следов резца особо не видно. При этом не полированная и совсем не скользкая. Очень разительный контраст, причем в лучшую сторону, по сравнению с Target-овскими дротиками. Углубления на барреле практически декоративные, пальцами чувствуются, но совсем чуть-чуть. Как по мне, так это совсем не плохо. Правда не знаю, лучше бы дротики были или нет, если бы этих насечек вообще не было.&lt;/p&gt;  &lt;p&gt;Теперь о субъективных впечатлениях. Ох*енно классные дротики! Просто сами по себе. Даже, если не брать во внимание их чрезвычайно низкую цену. А уж если еще и стоимость учесть, то вообще вне конкуренции. Теперь жалею, что раньше не обращал внимания на эту серию дротиков. Отличное доказательство того, что процентное содержание вольфрама вовсе не определяет ценность дротиков.&lt;/p&gt;  &lt;p&gt;Для себя я их охарактеризовал как очень бюджетная и крайне достойная альтернатива &lt;a href="http://eao197.blogspot.com/2011/02/lifesportdarts-simon-whitlock-90-22g.html"&gt;дротикам Саймона Витлока&lt;/a&gt;. Мне даже удобнее играть D47, чем Витлоками. Витлоки чуть покороче и перепад толщины у них больше, за счет чего нос дротика у Витлоков сильно перевешивает. У D47 же и длина побольше, и перепад толщины меньше. Что делает распределение веса в барреле другим, из-за чего получается более предсказуемый для меня полет дротика. Отсюда и хорошие попадания – за два часа игры я сделал три 180 и закрытие в 120 очков. Такого классного “эффекта новых дротиков” со мной уже давным-давно не было. Кстати говоря, такая легкость выбивания максимумов довольно удивительна – ведь нос дротика весьма широк, поэтому в T20 остается не так мало места (особенно, если сравнивать с McCoy Stealth или Bull’s Blackpool).&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh5.googleusercontent.com/-kOM87TG8sBA/TwXRlYvuBWI/AAAAAAAACE8/-_Y4r1myxhY/s800/d47_180.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Из недостатков обнаружен пока всего лишь один – короткие иглы, которые в моей повидавшей виды мишени держат не очень хорошо. Ну да это уже небольшая проблема для меня, когда сильно подзадолбёт просто поменяю иглы на более длинные – Unicorn-овские, например, или на тот же Target Storm. Будем посмотреть, короче.&lt;/p&gt;  &lt;p&gt;В общем, крайне удачная оказалась покупка. Теперь всем интересующимся буду рекомендовать обращать внимание на Designer Tungsten Darts – сочетание цены и качества просто отличное.&lt;/p&gt;  &lt;p&gt;Тем не менее, эксперименты с дротиками продолжаются, еще есть о чем рассказать. Так что stay tunned…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-2024392990998611735?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/-QULyjwuBoM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/2024392990998611735/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=2024392990998611735" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2024392990998611735?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/2024392990998611735?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/-QULyjwuBoM/lifesportdarts-designer-tungsten-darts.html" title="[life.sport.darts] Первые впечатления от дротиков Designer Tungsten Darts 80% 24g" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh6.googleusercontent.com/-XnLY1Ku4sDE/TwXRlFiEtZI/AAAAAAAACE4/LaPEMgJmqjI/s72-c/d47_in_box.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifesportdarts-designer-tungsten-darts.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MBSHk6cSp7ImA9WhRWF0s.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-7994612859846332191</id><published>2012-01-05T15:10:00.001+03:00</published><updated>2012-01-05T15:10:59.719+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-05T15:10:59.719+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="О программировании" /><category scheme="http://www.blogger.com/atom/ns#" term="Поток сознания" /><title>[prog] Прочитал несколько интервью Бертранда Мейера (часть 1)</title><content type="html">&lt;p&gt;&lt;a href="http://bertrandmeyer.com/2012/01/02/various-interviews/"&gt;Бертранд Мейер в своем блоге дал ссылки на ряд своих недавних интервью в русскоязычных изданиях&lt;/a&gt;. Два из них (&lt;a href="http://www.kommersant.ru/doc/1773357/print"&gt;в Коммерсанте&lt;/a&gt; и &lt;a href="http://www.osp.ru/os/2011/10/13012232/"&gt;в Открытых системах&lt;/a&gt;) я прочитал. Интересно. Прежде всего потому, что, на мой взгляд, Бертранд Мейер занимает уникальную позицию – сильно посередине между прикладными разработками и научными исследованиями. И, в какой-то мере, является проводником научных достижений в мир прикладной разработки (хотя на эту тему, вероятно, можно сильно спорить).&lt;/p&gt;  &lt;p&gt;Как раз с точки зрения переноса научных идей в мир производства ПО интересны упоминания формальных методов верификации программ и убежденность в том, что их применение способно повысить качество/надежность ПО.&lt;/p&gt;  &lt;p&gt;Скажу честно, в этой теме я слабо разбираюсь. Но отношусь к таким ожиданиям весьма скептически. Сейчас попытаюсь пояснить почему.&lt;/p&gt;  &lt;p&gt;Насколько я понимаю, сейчас можно проводить верификацию программ тремя способами:&lt;/p&gt;  &lt;p&gt;1. Статический анализ корректности кода в отсутствии формальных спецификаций. Такой анализ выявляет “тривиальные ошибки” как то: отсутствие возврата значения из функции в какой-то из ветвей, обращения к неинициализированным переменным, потенциальные переполнения при выполнении арифметических операций, выходы за пределы массивов и т.д. Часть этих ошибок выявляют сами компиляторы (например, отсутствие return-ов или выбрасывание исключения, не задекларированного в секции throws в языке Java). Часть вылавливают &lt;a href="http://eao197.blogspot.com/2009/12/compprog-c.html"&gt;специализированные статические анализаторы&lt;/a&gt;. Главное же в этом способе то, что он способен отыскивать “баги”, но ничего не может сказать о правильности работы кода. Т.е. можно написать программу без багов, которая будет делать совсем не то, что нужно. Например, переводить деньги со счета на счет без предварительной проверки допустимости такой операции (например, отсутствие достаточной суммы на исходном счете).&lt;/p&gt;  &lt;p&gt;2. Проверка выполнения контрактов программных компонентов. В первую очередь здесь должна быть упомянута система &lt;a href="http://eiffel.com/developers/design_by_contract.html"&gt;Design By Contract из языка Eiffel&lt;/a&gt; (которую так же пытались сделать в &lt;a href="http://www.d-programming-language.org/dbc.html"&gt;D&lt;/a&gt;), а так же разного рода попытки реализовать ее &lt;a href="http://en.wikipedia.org/wiki/Design_by_contract#Languages_with_third-party_support"&gt;в других языках (в виде специальных комментариев или аннотаций)&lt;/a&gt;. В принципе, в примитивном виде эта практика реализуется даже в C на основе assert-ов. На мой взгляд, DbC – очень неоднозначная вещь. Имел опыт работы с ней во время изучения Eiffel-я. В чем-то она хороша, в чем-то нет. Как бы то ни было, контракты хорошо подходят для небольших повторно используемых компонент (например, библиотек контейнеров или стандартных алгоритмов), а вот доказательство правильной работы некоторого заточенного под конкретного заказчика приложения с помощью контрактов вряд ли можно сделать.&lt;/p&gt;  &lt;p&gt;3. Проверка соответствия программы заранее определенным спецификациям. Т.е. сначала для приложения на каком-то формальном языке формируется точная и полная спецификация, затем на каком-то языке программирования эти спецификации воплощаются в реальный код (вручную или посредством кодогенерации), а затем посредством специализированных инструментов (в первую очередь статических анализаторов, а так же run-time анализаторов и генераторов наборов тестовых данных и воздействий) проверяется соответствие реализации исходной спецификации.&lt;/p&gt;  &lt;p&gt;На мой дилетантский взгляд, стоимость и сроки разработки существенно возрастают при использовании средств верификации программ. Причем чем более серьезное (а значит и надежное, качественное) средство используется, тем дороже и длительнее будет разработка (в качестве примера можно вспомнить &lt;a href="http://eao197.blogspot.com/2009/10/compprogthoughts-spark-gpl.html"&gt;упомянутый мной когда-то проект Tokeneer, выполненный с использованием SPARK Pro&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Ну да не в этом суть. В конце-концов, если что-то сейчас дорогостоящее оказывается реально широко востребованным, то люди довольно быстро находят способ удовлетворить спрос за счет резкого снижения стоимости (например, можно вспомнить как Генри Форд сделал автомобили массовыми, да и стоимость персональных компьютеров за последние 20 лет снизилась в разы).&lt;/p&gt;  &lt;p&gt;Мне кажется, что есть более фундаментальные причины, которые не позволяют формальным методам стать стандартной частью разработки ПО в нашей индустрии. При том, что мечты о проникновении формальных методов в массы витают в научной общественности чуть ли не столько же лет, сколько существует промышленная разработка ПО.&lt;/p&gt;  &lt;p&gt;Один из очевидных факторов – это полнота и корректность составления исходной спецификации. Но тут лучше слушать не меня, &lt;a href="http://eao197.blogspot.com/2011/08/prog-specification-explosion.html"&gt;а тех, кто этим вопросом вплотную занимается&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Я же хочу заострить внимание на другом аспекте. Верификация требует, чтобы спецификация (т.е. точный набор критериев для проверки кода) была готова до написания кода. Грубо говоря, чтобы полный набор тестов был сделан еще до разработки программы. И вот здесь уже теория (благие намерения) вступают в противоречия с практикой.&lt;/p&gt;  &lt;p&gt;Во-первых, не смотря на то, что в разных методиках (скажем, &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test Driven Development&lt;/a&gt;) требуется писать тесты до кода, намного, намного чаще делается наоборот. Сначала пишется код, разработчик убеждается, что код делает то, что нужно (делая один или два теста для подтверждения работоспособности кода). И лишь потом приступает к более полному тестированию – проверке граничных условий, некорректных входных данных, отсутствия ресурсов и пр. Причем так делают даже при использовании того же TDD – изначально создавая минимальный набор тестов, показывающих работоспособность кода на тривиальных сценариях. И это неспроста, поскольку есть еще и…&lt;/p&gt;  &lt;p&gt;Во-вторых, существует замечательный афоризм: &lt;a href="http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html"&gt;Everything should be built top-down, except the first time&lt;/a&gt; (т.е. все нужно разрабатывать сверху-вниз, за исключением самого первого раза). И это очень точно описывает ситуацию с разработкой ПО. Нам ведь не так уж часто приходится делать одно и то же снова и снова. Даже в чем-то похожие задачи все равно различаются в деталях. И начиная что-то делать мы далеко не всегда даже знаем, получится ли что-нибудь или не, а если и получится, то что именно. Если же мы не знаем, что получится на выходе, то как можно заранее покрыть итог нашей работы формальными спецификациями?&lt;/p&gt;  &lt;p&gt;На эту тему мне вспоминается случай, который произошел на заре моей профессиональной карьеры. Нужно было сделать отображение векторных картинок в окне с возможностью масштабирования и скролирования. Если бы это был наш формат и если бы мы сами отрисовывали картинку, то дело было простым. Но картинка сохранялась в WMF-файле (Windows Metafile) и отображалась средствами Windows (тогда еще 3.11). Я убил на это дело неделю, выкуривая те крохи документации по Windows API, которые были в моем распоряжении и проделывая по несколько неудачных экспериментов в день. В конце-концов, в состоянии, очень близком к отчаянию, я все-таки смог разобраться с премудростями SetWindowOrg, SetViewportOrg и деталями воспроизведения метафайла – WMF начал масштабироваться и скролироваться. &lt;/p&gt;  &lt;p&gt;Суть этой байки в том, что сначала был эксперимент, а затем уже анализ и осмысление его результатов (т.е. тестирование). И это очень важная часть человеческой природы – сначала попробовать сделать, а уже затем оценить, хорошо получилось или нет. И если нет, то попробовать как-то по другому.&lt;/p&gt;  &lt;p&gt;В случае же с формальной верификацией такой свободы, насколько мне представляется, нет. А значит и драйва, который разработчик иногда получает от программирования, тоже нет :( А какой же тогда смысл в программировании, если нет кайфа и драйва? ;)&lt;/p&gt;  &lt;p&gt;PS. Кстати, в разработке прикладного ПО есть немалая доля субъективизма. Вот тоже отображение метафайла средствами ОС – как формально специфицировать корректность этого отображения? А ведь разработчик просто взглянув на картинку в состоянии точно дать ответ – правильно она отображена или нет. Если же взять такой пласт проблем, как расположение органов управления в диалоговых окнах, их цвета и размеры, моменты замораживания/размораживания и пр. составные части usabillity… &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-7994612859846332191?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/7eOfk2GVZcE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/7994612859846332191/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=7994612859846332191" title="Комментарии: 28" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/7994612859846332191?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/7994612859846332191?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/7eOfk2GVZcE/prog-1.html" title="[prog] Прочитал несколько интервью Бертранда Мейера (часть 1)" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>28</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/prog-1.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MGQH4_fyp7ImA9WhRWFUQ.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-4866336577961750217</id><published>2012-01-03T15:57:00.001+03:00</published><updated>2012-01-03T15:57:01.047+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-03T15:57:01.047+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Отдых" /><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="Дартс" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.darts] Закончился Чемпионат Мира по версии PDC</title><content type="html">&lt;p&gt;Сегодня поздно ночью закончился PDC-шный Чемпионат Мира по дартс. В финале Адриан Льюс со скрипом одолел Энди Хамильтона и стал 2-х кратным чемпионом, защитив свой прошлогодний титул. При этом он оказался всего лишь третьим человеком в истории дартса, которому удалось сделать это (ранее это получилось только у Эрика Бристоу и Раймонда ван Барнивельда).&lt;/p&gt;  &lt;p&gt;Смотреть этот чемпионат было сложнее, чем прошлогодний. Беларусь вместе с Россией в этом году не возвращалась на зимнее время, тогда как весь нормальный мир, включая Великобританию, сделали это. Посему разница во времени с Лондоном у нас сейчас 3 часа, вместо 2-х. И матчи, которые начинались поздно вечером в Лондоне, шли у нас уже ночью. Из-за чего ряд интереснейших матчей посмотреть не удалось.&lt;/p&gt;  &lt;p&gt;На этом чемпионате я болел за троих игроков – Фила Тейлора (рассчитывая, что он сможет взять 16-тый титул), Дейва Чизнелла (который перешел в PDC в самом начале 2011-го года) и Саймона Витлока (который до Чемпионата два месяца вообще не играл после перелома ноги).&lt;/p&gt;  &lt;p&gt;Но расклад матчей оказался неудачным для моих фаворитов – они все должны были бы встретиться между собой еще до финала. Фил Тейлор сыграл с Чизнеллом уже в 1/16. И сенсационно проиграл 1-4. Именно такого исхода и боялся. Дело в том, что Тейлор провел очень хороший сезон 2011-го года – он выиграл Players Championship Finals 2010, World Matchplay, European Championship, World Grand Prix и Grand Slam of Darts. Но затем в его игре наступил явный спад – это очень хорошо было видно в матче с Мервином Кингом на Players Championship Finals 2011 за неделю до Чемпионата Мира. Этим спадом и смог воспользоваться Дэйв Чизнелл, отлично настроившись на один единственный важнейший матч.&lt;/p&gt;  &lt;p&gt;После своей сенсационной победы Чизнелл не смог придти в себя и слил вчистую следующий матч Энди Хамильтону – 0-4.&lt;/p&gt;  &lt;p&gt;Дольше всех продержался Саймон Витлок, хотя ему было труднее всего – играл он сильно прихрамывая. Более того, в первый день он смог разминаться перед своим матчем всего десять минут – настолько сильно болела сломанная нога. Тем не менее, по ходу чемпионата Витлок собрал приличную коллекцию скальпов – Стива Битона, Майкла ван Гервена и, самый почетный, Гари Андерсона.&lt;/p&gt;  &lt;p&gt;Но после Андресона Витлок в полуфинале вышел на Энди Хамильтона. И это был первый из двух сумасшедших полуфиналов этого чемпионата. Фоном к матчу Витлок-Хамильтон был уникальный четвертьфинал летнего World Matchplay, когда проигрывая 8-15 в матче до 16 побед Хамильтон совершил чудо и выиграв 9 легов подряд уделал Витлока 17-15. К сожалению для меня почти то же самое произошло и сейчас. Сначала Хамильтон вышел вперед 3-1, затем Витлок смог переломить ход игры и стал лидировать 5-3. Но Хамильтон не сдался и довел сначала до 5-5, а затем и до 6-5 в свою пользу (последний сет завершился со счетом 4-2). Ключом к победе Хамильтона стали удачные завершения – 58% успешных попаданий в удвоения. Тогда как Витлок, не смотря на отличные наборы (14 максимумов, 34 раза 140+ и 53 раза 100+) закрывался плохо – только 36%.&lt;/p&gt;  &lt;p&gt;Второй полуфинал между Адрианом Льюисом и Джейсом Вэйдом был еще более сумасшедшим. Вэйд быстро повел в счете буквально громя Льюиса, у которого ничего не получалось. И вскоре Вэйд довел игру до счета 5-1 в свою пользу – и это в матче до 6 побед! Казалось, что только чудо может помочь Льюису выиграть. И оно таки произошло!&lt;/p&gt;  &lt;p&gt;Случилось сразу две вещи. Первая вполне ожидаемая – у Льюиса полетели максимумы. Это вообще его фирменная черта – большие наборы, здесь он может поспорить даже с Андерсоном. Но в начале игры максимумы у Льюиса не шли. Зато потом полетели, да еще в самые нужные моменты. Вторая вещь была неожиданной – Вэйд стал промахиваться мимо удвоений. В том числе мимо своих любимых D20 и D10. Именно это и решило исход матча. Ну, может еще у Вэйда закончилось действие дозы антидепрессантов, которыми его пичкают дабы удержать от суицидных действий.&lt;/p&gt;  &lt;p&gt;В матче Льюиса против Вэйда запомнился самый последний лег. Первым бросал Льюис. После 9 дротиков у каждого из игроков осталось по 161. Но право очередного подхода было у Льюиса – и он вышел и закрыл 161! После этого подхода если у кого-то еще и были сомнения в судьбе титула, то они должны были окончательно развеяться.&lt;/p&gt;  &lt;p&gt;Итак, в финале сошлись Льюис и Хамильтон. С одной стороны, каждому из них очень повезло. Хамильтон, на мой взгляд, оказался в финале только благодаря везению и невероятному стечению обстоятельств – в первых двух матчах против испанца Альциноса и голландца ван дер Вурта он едва-едва уцелел. Затем была победа над разобранным после победы над Тейлором Чизнеллом. Затем над бельгийцем Хайбрехтом, который и так прыгнул в два раза выше головы, дойдя до 1/4 финала. Потом встреча с поломанным Витлоком, который накануне играл с Андерсоном. В общем, Фортуна подсовывала Хамильтону игроков в нужных кондициях, а Хамильтон на 100% пользовался стечением обстоятельств.&lt;/p&gt;  &lt;p&gt;Путь Льюиса на чемпионате так же начинался со счастливого случая – в первом же матче Льюис должен был проигрывать Найджелу Хейдону. И Хейдон даже несколько раз бросал на матч! Но за Льюиса вступился зрительный зал – такого сильного давления зрителей на игрока я уже давно не видел. Хейдон, вероятно, так же, поэтому справиться с реакцией публики не смог. После Хейдона Льюис шел к финалу весьма уверено, обыграв Тортона, Джонеса и Дженкинса с Вэйдом.&lt;/p&gt;  &lt;p&gt;С другой стороны, не смотря на явное благоволение Фортуны, в финале оказались два игрока, которые на этом чемпионате сделали самые реальные заходы на 9-darter. Хамильтон в матче против Альциноса промахнулся 9-тым дротиком мимо D18, а Льюис уже в финале промазал 9-тым мимо D12.&lt;/p&gt;  &lt;p&gt;Финал же получился не сильно выразительным. Большое количество маленьких наборов, большое количество промахов по удвоениям, очень явное нервное напряжение обоих игроков из-за которого никто из них не мог найти свою игру. Точнее, это Льюис долго не мог найти свою игру, Хамильтон же играл, имхо, на своем обычном уровне. К тому же лично меня Хамильтон очень быстро задолбал своей манерой поведения – после каждого(!) своего удачного похода (большой набор или выигранный лег) он оборачивался к своей жене и со страшной рожей что-то радостно кричал. А поскольку сидела она где-то за телекамерами, то казалось, что он специально на камеру это делает. В результате спокойно на выходки Хамильтона я реагировать уже не мог ;) Льюис, не смотря на свой молодой возраст, вел себя намного спокойнее и достойнее. Наверное поэтому и победил ;)&lt;/p&gt;  &lt;p&gt;Заканчивая рассказ о Чемпионате Мира нельзя не упомянуть о яркой игре двух неанглийских игроков, матчи которых мне удалось посмотреь.&lt;/p&gt;  &lt;p&gt;Первый – немец Йохан Артут. В первом круге чемпиона едва-едва не уделавший Гари Андерсона. Причем выигрыш Артута, буде он случиться, был бы очень по делу. Но чего-то чуть-чуть не хватило. Мне кажется, что опыта игры на большой сцене. За счет этого опыта Андерсон смог удержаться. Надеюсь, однако, что Артут еще свое возьмет.&lt;/p&gt;  &lt;p&gt;Второй – бельгиец Ким Хайбрехт. Совсем молодой игрок, который внезапно заявил о себе на European Championship этого года, где он сенсационно дошел до 1/4 финала. Призовые деньги за это достижение позволили ему заняться дартсом профессионально. И вот на этом Чемпионате Мира он вновь заявил о себе – 3-0 над Брендоном Доланом, 4-1 над Джеймсом Ричардсоном (который в первом раунде оставил не у дел ван Барнивельда), 4-1 над Полом Николсоном. Последняя победа очень дорогого стоит. Поэтом надеюсь, что Хайбрехт не остановиться на этом. Пора уже англичан в дартсе подвинуть – сначала с помощью голландцев, немцев и бельгийцев, а там и мы подтянемся! ;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-4866336577961750217?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/S-d1NMAIJwY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/4866336577961750217/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=4866336577961750217" title="Комментарии: 0" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/4866336577961750217?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/4866336577961750217?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/S-d1NMAIJwY/lifesportdarts-pdc.html" title="[life.sport.darts] Закончился Чемпионат Мира по версии PDC" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://eao197.blogspot.com/2012/01/lifesportdarts-pdc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUCSXc-fyp7ImA9WhRWE04.&quot;"><id>tag:blogger.com,1999:blog-654279083390275842.post-8117494831158152149</id><published>2011-12-31T14:51:00.001+03:00</published><updated>2011-12-31T14:51:08.957+03:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-31T14:51:08.957+03:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Отдых" /><category scheme="http://www.blogger.com/atom/ns#" term="Спорт" /><category scheme="http://www.blogger.com/atom/ns#" term="Дартс" /><category scheme="http://www.blogger.com/atom/ns#" term="О жизни" /><title>[life.sport.darts] Лытдыбр</title><content type="html">&lt;p&gt;В последнее время работа и тренировки не оставляли времени на блог, поэтому не удавалось описывать события по горячим следам. Под катом небольшой рассказ о последних событиях и краткое подведение итогов.&lt;/p&gt;  &lt;a name='more'&gt;&lt;/a&gt;  &lt;p&gt;Одиннадцатого декабря большой толпой заехали в Минск на Финал Кубка РБ по дартс. Поехали я и Андрей Бузуверов (играли в паре), Дима Косточко и Паша Денисов (так же играли в паре), Андрюс Микялёнис (играл в паре с минчанином Игорем Роговым). Добирались туда и обратно на нанятом микроавтобусе, поэтому уложились в один день, хотя вставать пришлось ни свет, ни заря.&lt;/p&gt;  &lt;p&gt;Этот заезд для меня, как это уже стало нехорошей традицией в последние месяцы, оказался неудачным. В парном турнире мы с Андреем попали в группу с солигорскими парами Гурленя/Филимонов и Троян/Андросов. Кстати говоря, обе наши пары-соперницы дошли до стадии полуфиналов. Т.е. группа нам попалась очень серьезная.&lt;/p&gt;  &lt;p&gt;Не расчитав время на дорогу, мы прибыли на место в 10:25. На этот раз организаторы с регистрацией и жеребьевкой справились очень оперативно, поэтому к нашему появлению турнир уже начался и первая пара уже ждала нашего прибытия. Поэтому мы “с корабля на бал”, сделав всего по три разминочных подхода к мишени, начали играть с Гурленей и Филимоновым. Понятное дело, что проиграли 0-3. Хотя в последних легах нам удавалось даже цепляться за удвоения. И если бы мы смогли размяться чуть побольше, хотя бы минут 5, все могло сложиться иначе.&lt;/p&gt;  &lt;p&gt;Из этой игры я вынес урок. Нужно было не поддаваться на нажим Филимонова, а начать разминаться. В случае претензий нам нужно было бы сказать что-то вроде: “Зовите судью, пусть засекает 5 минут для нашего вызова на матч. Если мы не явимся через пять минут, пусть нам засчитывают поражение.” И пока бы наши соперники занимались организацией всего этого дела, мы бы получили несколько дополнительных разминочных подходов. Но тогда мы до этого не додумались – явно сказался недостаток соревновательного опыта (точнее, опыта использования всяческих уловок).&lt;/p&gt;  &lt;p&gt;Со второй игрой нам так же не повезло. Мы должны были играть ее сразу же после первой. Так что отсутствие разминки сказывалось и там, но уже в меньшей степени. Мы смогли довести счет до 2-2 и даже имели шансы в решающем леге, но не смогли их реализовать.&lt;/p&gt;  &lt;p&gt;В общем, в парах обидный проигрыш, который на мой взгляд, на 100% объясняется нашим собственным поздним приездом на место соревнований. Выехали бы на час раньше из Гомеля, имели бы достаточно времени и на разминку, и на психологическую адаптацию.&lt;/p&gt;  &lt;p&gt;Как раз злость на самого себя (я винил себя в том, что не настоял на более раннем выезде из Гомеля) не позволила мне собраться на личный турнир. Я проиграл матчи Андрею Боброву из Минска (который в первом леге сделал классный checkout в 90 очков через 20+20+Bull) и Владимиру Андросову из Солигорска (которому я умудрился слить лег, в котором опережал соперника на 250 очков). Причины этих проигрышей были исключительно в голове и срочно нужно учиться отключать мозги, особенно после проигранных матчей.&lt;/p&gt;  &lt;p&gt;Печальные результаты на Финале Кубка показали все гомельчане за исключением Димы Косточко – он играл здорово, дошел до 1/4 финала по дороге сделав 180, сотенное закрытие и выиграв 1/8 у Паши Якимова 4-0. Но в 1/4 против Олега Ужова Диме явно не хватило физической выносливости, а такой сильный соперник, как Олег, слабины не прощает.&lt;/p&gt;  &lt;p&gt;Позавчера, 29 декабря, мы в офисе провели дартс-марафон, взяв за основу формат PDC-шного турнира Champioship League Darts. Там восемь сильнейших дартсистов в течении дня играют каждый с каждым (т.е. каждому игроку предстоит сыграть 7 обязательных матчей), затем четверо лучших из них разыгрывают полуфинал и финал по олимпийской системе. Вот так же сыграли и мы, только играли матчи до побед в трех легах, а не в шести, как в PDC – все-таки уровень у нас пока сильно не тот.&lt;/p&gt;  &lt;p&gt;Я выиграл все семь отборочных игр, затем полуфинал у Дениса Томашенко и в финале сошелся с Андреем Бузуверовым. Где Андрей совершил чудо, которое украсило бы любой крупный PDC-шный турнир. При счете 2-2 в решающем леге счет был 92 у меня против 123 у Андрея. Я закрыться не смог – 20, затем T12 и третий дротик мимо D18 – у меня осталось 36. На рубеж вышел Андрей и T20+13+Bull!!! Редкой красоты победа.&lt;/p&gt;  &lt;p&gt;Да и вообще марафон получился знатным (а если бы некоторые игроки еще и вовремя пришли в офис, было бы еще интереснее). Хотя и жаль, что выиграв восемь игр подряд, не удалось выиграть еще и третью. Самыми же напряженными играми в этом марафоне у меня, кроме финала, были два матча против Дениса Томашенко – оба со счетом 3-2 и оба на высооктановой смеси нервов и везения. Впечатлило и закрытие в 92 очка двумя дротиками – T20+D16 – которое Денис сделал в полуфинале. Порадовало разве что то, что впервые за долгое время я выбил 180 в официальном матче. Да еще и то, что на этот раз у меня не было претензий к дротикам – летели туда, куда я их посылал. А уже промахи – это мои промахи, дротики тут были не при чем.&lt;/p&gt;  &lt;p&gt;А вчера в офисе мы провели очередной турнир новичков “ЗаДротики”. С этих турниров года полтора назад наше дартс-движение начиналось. Последний был как раз в декабре 2010. За этот год в компании появились новые люди, да и участники прошлых ЗаДротиков были не прочь вновь попробовать свои силы. Так что турнир получился неожиданно представительным – двенадцать участников. А победителем, и обладателем Unicorn-овской Phase 6, стал Саша Мигай, обыгравший в интригующем финале Виталика Легчилкина.&lt;/p&gt;  &lt;p&gt;Вот, пожалуй, и все. Пора переходить к итогам. Год оказался напряженным. Только в Минск на различные соревнования я съездил десять раз. Плюс еще три турнира в офисе. Плюс постоянно увеличивалось время, которое я отводил на тренировки… Это был год больших взлетов (два финала в Минске) и серьезных провалов, неожиданных достижений и череды интересных, поучительных, но, по большей части, неудачных экспериментов. Но главное – желание заниматься дартсом не только не пропало, но только усилилось. Так что эта страсть занимает теперь изрядную часть моей жизни и, полагаю, будет занимать некоторую часть этого блога.&lt;/p&gt;  &lt;p&gt;Зато планы на будущий год поскромнее. Хочется организовать в офисе розыгрыш в двух лигах – для игроков поопытнее и для новичков. Хочется таки поиграть месяцев пять-шесть подряд одной моделью дротиков (благо, до середины следующего года производители вряд ли представят какие-то интересные новинки). Хочется сократить количество поездок в Минск – съездить только на крупные международные турниры (памяти Дубограева, Дартс-Весна, Belarus Open) и на этапы Кубка РБ. Ну, может еще и на Чемпионат РБ, если таковой состоится. И хотя есть опасение, что недостаток серьезной соревновательной практики обязательно скажется негативно, но хочется за счет тренировок сначала достичь стабильных наборов и более-менее быстрых закрытий. Не имея в голове достаточной уверенности в своих способностях тратить время и нервы на выездные соревнования уже не хочется.&lt;/p&gt;  &lt;p&gt;В общем – играйте в дартс, это здорово!&lt;/p&gt;  &lt;p&gt;Особенно, когда делаешь что-нибудь этакое ;)&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh4.googleusercontent.com/-N2sOY_a40zo/Toh7QIrPA2I/AAAAAAAAB-c/snRcHyjIycM/s640/robin_hoot_vs_180.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh4.googleusercontent.com/-FOD3s2UoHMA/Trgg0zpgEmI/AAAAAAAACBE/ZpDec-U_Et8/s640/checkout_155.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh6.googleusercontent.com/-LdPaKZTvZ_A/Trgg04t-3CI/AAAAAAAACBA/R6ymspJgSvQ/s640/checkout_170.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="https://lh4.googleusercontent.com/-HrbFp6tS6b4/Tv70QnH7ijI/AAAAAAAACEg/_AD01-76SRI/s800/walsh_24g_150.jpg" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/654279083390275842-8117494831158152149?l=eao197.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/Eao197/~4/QVZ8lL1ucw8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://eao197.blogspot.com/feeds/8117494831158152149/comments/default" title="Комментарии к сообщению" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=654279083390275842&amp;postID=8117494831158152149" title="Комментарии: 2" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8117494831158152149?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/654279083390275842/posts/default/8117494831158152149?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Eao197/~3/QVZ8lL1ucw8/lifesportdarts_31.html" title="[life.sport.darts] Лытдыбр" /><author><name>Евгений Охотников</name><uri>http://www.blogger.com/profile/17283739752119445290</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="31" height="32" src="http://1.bp.blogspot.com/_lbE9Ci430vo/SU-Q6Vymg3I/AAAAAAAAAAU/_A9OAVmO22U/S220/my_photo_3.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh4.googleusercontent.com/-N2sOY_a40zo/Toh7QIrPA2I/AAAAAAAAB-c/snRcHyjIycM/s72-c/robin_hoot_vs_180.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://eao197.blogspot.com/2011/12/lifesportdarts_31.html</feedburner:origLink></entry></feed>

