После написания заметки о генераторах фракталов, меня посетила одна идея. В свое время я интересовался автоматическим распознаванием капч (которые captcha). Так вот, распознавание происходит в несколько этапов. Текст капчи отделяются от фона, вычищается от мусора, нарезается на буквы. Затем буквы приводятся к одному размеру и используются для обучения нейронной сети. Притом первый шаг — отделение текста от фона, как правило, является довольно простым.

Не могу удержаться от соблазна выразить еще немного экспрессии в отношении сегодняшней ситуации с языками программирования. Как обычно, я не претендую на знание истины, а просто хочу поделиться своими мыслями/наблюдениями. Соглашаться с ними или нет — дело ваше.

Вопреки распространенному мнению, фракталы — это не только красивые картинки. Фракталы используются в математическом моделировании, голливудских спец-эффектах, алгоритмах сжатия и много где еще. Далее по тексту вы найдете описание нескольких программ-генераторов фракталов с открытым исходным кодом. Их можно использовать как в учебных целях, так и для убивания времени или генерации красивых обоев. Бесспорно, это очень полезный софт!

Я давно знал, что пользоваться системой контроля версий — правильно и полезно. Но все было как-то неохота. Ну вы в курсе, как это бывает. И вот, некоторое время назад, лень удалось побороть. Выбор был сделан в пользу subversion, несмотря на преимущества альтернативных систем. Видимо, чтобы по-настоящему понять преимущества Git/Darcs/Bazaar/Mercurial, нужно какое-то время поработать с SVN. А иначе — с чем сравнивать? К тому же, subversion кажется наиболее «каноничной» системой контроля версий.

Если вы давно читаете мой блог, то можете помнить, как пару раз я говорил о Python разные неприятные вещи, дескать он медленный и памяти много кушает. При этом даже приводились различные пруфлинки. Но, откровенно говоря, нехорошо судить о языке по тому, массивы какой вложенности он поддерживает, с какой скоростью он выполняет пустой цикл из 100500 итераций и тд. Нас же интересует, как он справляется с типовыми задачами. Так что я решил провести собственный небольшой эксперимент.

Mojolicious (произносится «моджолишес») — это новый и активно развивающийся веб-фреймворк, написанный на Perl. И написал его не абы кто, а Sebastian Riedel, который является одним из разработчиков Catalyst. В последнее время Mojolicious стал темой активного обсуждения в сообществе Perl-программистов, так что я просто не мог его не попробовать.

Решил потратить время на изучение какого-нибудь функционального языка программирования. Их оказалось довольно много, но наиболее правильным (обсуждаемым, активно используемым, хорошо документированным, …) мне показался Haskell. Недавно вышло несколько книг на русском языке, посвященных этому языку (автор — Роман Душкин), что также повлияло на мой выбор.

Недавно заказал у Насти Манно шаблон для одного из своих блогов. Это первый раз, когда я плачу деньги за дизайн сайта. Вообще, до этого я не заказывал у фрилансеров ничего «серьезного», разве что килознак текста написать и прочие мелочи.

Когда-нибудь я планирую запостить в этот блог несколько заметок, посвященных всяким «низкоуровневым» вещам — таким, как алгоритмы сжатия, ассемблер, написание драйверов, WinAPI и тд. В контексте подобных тем всегда возникает вопрос, мол зачем мне все это знать, когда есть готовые библиотеки, высокоуровневые языки и прочие вещи, избавляющие нас от необходимости много думать. Чтобы в будущем не возвращаться к этому вопросу, я попробую ответить на него сейчас.

Что-то давно я не делился своими мини-заметками. За прошедшее время их накопилось довольно много, так что мне пришлось отобрать только лучшие из них. По моему субъективному мнению, конечно. Кому интересно, может ознакомиться предыдущими выпусками — под номером один и два.