Неделю назад я рассказал о спортивной составляющей поездки в Раубичи на турнир “Дартс-Весна 2011”. Сейчас попробую изложить несколько неспортивных воспоминаний. Связного последовательного сочинения не ждите, а то, что получилось находится под катом. Надеюсь, это чтиво окажется интересным более широкому кругу читателей.
Размышления и впечатления, которые не хочется держать в себе. О программировании в частности. Ну и о творчестве, и о жизни вообще.
суббота, 28 мая 2011 г.
пятница, 27 мая 2011 г.
[life.cinema] УС-3: Цитадель, бля…
В файлообменных сетях появилась пристойная копия “Утомленных солнцем-3: Цитадель”. Не мог не воспользоваться данным фактом, чтобы проверить, насколько впечатления Дмитрия “Гоблина” Пучкова близки к реальности.
Проверил. Если Гоблин досмотрел УС-3 до конца, то респект – крепкий мужик. Я не смог. Первые 20 минут еще выдержал на обычной скорости, затем еще минут 40 проматывал, просматривая только отдельные сцены. На больше меня уже не хватило. Так что финальной атаки с черенками от лопат, к счастью, не видел.
Из того, что я увидел, у меня сложилось впечатление, что главный герой в фильме вовсе не Михалков или семья Михалкова, и уж тем более не “легендарный комбриг Котов”. Главная героиня фильма – Ее Величество Истерика. Мастерски показанная во всех возможных вариациях и проявлениях. Истерят все – генерал, бойцы штрафбата, НКВДшники, водители, раненые, роженица, бывшая жена, ее нынешний муж и вообще все, кто хоть сколько-то задерживается в кадре. Кроме истерики ни на что больше не обращаешь внимания, даже на фантасмагорическую альтернативную историю Великой Отечественной, рассказываемую в качестве фонового оформления к нескончаемым истерикам.
PS. Считаю, что Интернет-пользователям, решившим качнуть этот фильм нужно в обязательном порядке компенсировать впустую потраченный трафик.
PPS. Как-то я не замечал у нас в Гомеле рекламных постеров УС-3 в этом году. Коих в прошлом для УС-2 было множество. Видимо, наши прокатчики оказались здравомыслящими людьми и не рискнули выливать это дерьмо в широкий прокат.
PPPS. Мне вот действительно интересно, неужели Михалкову никто до сих пор не объяснил, что означает (по крайней мере означало) слово “Бесогон”? Или же это такой тонкий стеб над зрителями “Бесогон TV”?
четверг, 26 мая 2011 г.
[prog] ICU 4.8 Released
Вышла версия 4.8 большой библиотеки ICU – инструмента для работы с Unicode и другими связанными с интернализацией (i18n) вещами (числами, датами, текстами, регулярными выражениями и пр.).
Загрузить можно отсюда: http://site.icu-project.org/download/48
Тем, кто не знаком с ICU, можно заглянуть сюда: http://userguide.icu-project.org/
В анонсе утверждается, что это серьезное обновление ICU, с новыми фичами, с новыми API и кучей багфиксов. Кратенький перечень изменений:
Common Changes (т.е. и для C/C++, и для Java версий)
- CLDR 2.0: The CLDR 2.0 release contains numerous improvements and bug fixes approved by the CLDR committee, including much additional data for many languages.
- Explicit parent locale support in data imported from CLDR (#8031)
- MessageFormat and related classes (choice/plural/select) have been reimplemented, with several improvements and some incompatible changes.
- Extended PluralFormat pattern syntax supports explicit-value forms and offsets. (#7858)
- Utility APIs in PluralRules (get some/all/unique keyword values)
- Time zone API to return a list of available canonical system time zone IDs (#8278)
- Time zone API to return a region (#8279)
- Collation: Full implementation & public API for script reordering
- Dictionary-type trie (#8167)
- GB18030-2005 update (#8274)
ICU4C Specific Changes (т.е. только для C/C++ версии)
- Alphabetic Index support ported from ICU4J (#7538)
- X11 Compound Text encoding support ported from ICU4J (#7959)
- Appendable interface (#8314)
PS. Сам я ICU не использую, но за развитием подсматриваю :)
среда, 25 мая 2011 г.
[life.sport.darts] Первые впечатления от дротиков Multi-Ring 26g 90%
Как я и предсказывал в прошлом обзоре, ко мне в руки попали 26-граммовые 90% дротики Multi-Ring. Под катом небольшие подробности для интересующихся.
[prog.flame] Затрону таки тему Nemerle
RSDN-овские флеймы про Nemerle, как и советские газеты, я уже давно не читаю. Но после анонса релиза версии 1.0 на LOR-е время от времени просматриваю LOR-овское обсуждение. И вот на чем я себя ловлю: за все время, пока Nemerle мозолит мне глаза, я не встречал ни одного вменяемого объяснения преимуществ управления синтаксисом языка для прикладного программирования.
Главная фишка Nemerle, которую ставят во главу угла его евангелисты, – это синтаксические макросы. По сути, ядро языка очень минималистично. В нем нет даже таких привычных вещей, как if-ы и for-ы. Все это строится за счет синтаксических макросов, которые доступны не только разработчикам языка, но и пользователям. Любой прикладной программист может наваять свой собственный синтаксис для свой специфической задачи. Фактически, главное достоинство языка – это простое создание встраиваемых Domain Specific Languages (internal DSL-ей) для конкретных прикладных областей.
Когда синтаксические макросы используются для формирования самого языка (if-ы) или его стандартной библиотеки (Regexp, LINQ и пр.), то это проблемы разработчиков языка и библиотек. Прикладных программистов это не касается. AFAIK, изрядное количество машинных команд IBM 360 реализовывались на самом деле не в процессоре, а через т.н. микрокод – набором совсем уж низкоуровневых команд процессора. И эта механика прикладных разработчиков нисколько не заботила.
Зато когда макросы начинают использоваться прикладными программистами, тут правила уже иные. Во всех спорах вокруг Nemerle всплывает один и тот же вопрос: ну и что делать, если Вася Пупкин придумал супер-пупер DSL, написал на нем туеву хучу кода, а затем свалил, а на проект пришел Ваня Сидоров? Что делать Ване Сидорову с этим DSL-ем, как с ним разбираться, как его сопровождать?
И вот на этот вопрос у Nemerle-истов я не видел вменяемых ответов. Стандартная отмазка – а когда Вася Пупкин оставляет после себя туеву хучу классов с методами – это разве не DSL? Разве с этим не приходится разбираться?
Гнилая отмазка. Практика показывает, что с туевой хучей процедур, функций, классов, методов, модулей, пакетов и пр. сущностей удается справляться. Не без труда, но удается. Уже лет 50 как. Уже собран изрядный опыт, созданы специальные инструменты – те же продвинутые IDE с инспекцией кода. Подавляющее большинство работающего вокруг нас ПО разработано именно так.
Как дело пойдет, если прикладные задачи начнут решаться посредством комбинирования DSL-ей – вот это terra incognita. В истории разработки ПО соответствующих крупномасштабных экспериментов было всего нечего. Самый большой – это Lisp. Который уже давным-давно не мейнстрим и серьезного влияния на мейнстрим не оказывает. Т.е. процент разрабатываемого на Lisp-е ПО находится где-то в рамках статистической погрешности ;) Но как раз на примере Lisp-а можно видеть, что DSL-естроение черевато. Интересующихся адресую к Social Problems of Lisp ;)
Было время, когда я увлекался мелкими DSL-ями – это были интересные эксперименты, но не более того. Хотя даже исходя из своего скромного опыта могу указать одно важное преимущество кучи классов/методов перед DSL-ями: чужое API (на важно, объектное или процедурное) не сложно инкапсулировать в свое собственное API. А вот с DSL-ями так не получится.
Т.е., если у нас есть “чужой и корявый” API для какой-то прикладной области, то мы можем построить вокруг него свой “правильный и красивый” фасад. Взять, например, библиотеку libcurl. Да, она работает, да в ней все уже давно сделано. Но пользоваться ей – убиться веником :) Однако, всего несколько простеньких утилитных классов превращают это неблагодарное занятие во вполне себе нормальное и не лишенное некоторой приятности ;) В случае с API такой фокус прокатывает. А вот в случае, если бы libcurl была представлена как расширение синтаксиса?
[life.photo] И еще раз практически живопись белым по белому
Белый павлин в зоопарке Будапешта. Снимок найден в очередном выпуске WSJ’s Photos of the Day.
вторник, 24 мая 2011 г.
[prog] Указание номера порта в ODBC connection string при подключении к MS SQL Server
Если в ODBC connection string для подключения к MS SQL Server нужно указать имя хоста SQL Server-а, то делается это просто – через параметр Server. Например:
Driver={SQL Native Client};Server=mydbhost;Database=test;…
Но это работает только для случая, когда MS SQL Server использует свой родной порт 1433. А вот если это не так, и для сервера БД задействован нестандартный порт, то в connection string он указывается хитрым способом: в параметре Server через запятую после имени хоста. Т.е. так:
Driver={SQL Native Client};Server=mydbhost,1896;Database=test;…
Почему не в нотации host:port, почему не в отдельном параметре Port – хрен его знает. В общен, получается как в анекдоте: “Запомнитэ это дэти, патаму что понять это нэвозможно!” :)
понедельник, 23 мая 2011 г.
[life] Когнитивный диссонанс: Ирландия – родина предков Барака Обамы
Читая новости на new.tut.by зацепился взглядом за заголовок, который поверг меня в состояние когнитивного диссонанса:
Вот посмотришь пристально на портрет Барака Хуссейна Обымы II – ёптыть, ну вылитый ирландец:
PS. Справедливости ради нужно сказать, что по материнской линии у Обамы замешано много кровей и отнюдь не африканских. Но вот ирландских предков там нужно было выискивать с особым цинизмом особой тщательностью :)
PPS. А заголовок новости толковый журналист (или редактор) придумывал – таки заставил текст новости прочитать ;)
воскресенье, 22 мая 2011 г.
[life.sport.darts] Принял участие в турнире “Дартс-Весна 2011” в Раубичах
С 13-го по 15-е мая 2011 в Раубичах, под Минском, прошел крупный, по нашим местным меркам, международный турнир “Дартс-Весна 2011”. В котором я поучаствовал. Подробности о том, как этот турнир сложился для меня под катом.