2016-11-13

Introduction to Functional Programming in OCaml

Закончил курс Introduction to Functional Programming in OCaml в Université Paris Diderot. По крайней мере хватило сил закончить в отличие от clojurecourse.by который я тупо дропнул на середине. Никакой бумажки не дали, как это было на Coursera. Сделал вывод, а скорее подтвердил то, что было на Машинном Обучении: отсутствие в непосредственной доступности ментора приводит к колоссальным затратам времени и усилий на решение элементарных проблем, для меня онлайн-обучение элементарно не работает. Когда, после после пары часов отчаяния и созерцания кода, находишь элементарную опечатку (в силу непривычного синтаксиса), необходимо обладать железобетонной мотивацией для продолжения.

По поводу самого OCaml. С этим можно жить, но я слабо представляю в задачах крупнее небольших утилит заточенных под конкретную задачу. По ощущениям развитие платформы остановилось где-то в 2000-х на уровне междусобойчика французов. Использовать OCaml в обозримой перспективе я не буду. Функциональные подходы абсолютно органично вошли задолго до этого курса, когда я впервые подключил guava. Строгая типизация (в понимании OCaml) чересчур строгая для моих задач. Объектная ориентированность прибита гвоздями видимо в дань моде.

Синтаксис не взрывает мозг как в clojure, хотя к отдельным вещам можно и придраться, но небольшой набор простых инструментов и набор из базовых типов списка и кортежа, на котором строятся всё богатство возможностей, – это они сделали правильно. Паттерн-матчинг и алгебраические типы данных – это реально очень круто, раньше не сталкивался, а вот тут прочувствовал как код становится очень выразительным. В groovy конструкция switch даже не смотря на то, что может матчить энумы, значения, типы просто рядом не стояла. При помощи наследования можно отдаленно сымитировать алгебраические типы и я примерно даже представляю как можно было бы сделать пародию на паттерн-матчинг через рефлекшен и лямбды, но все-равно не будет статических проверок и деструктуризация даже в груви примитивна на уровне раскидать плоский tuple по переменным.

Из плюсов, F# очень похож на OCaml, скорее всего код на haskell мне теперь будет понятен. Записал себе на будущее – пощупать scala. Итого польза от прохождения курса – 4 из 5. Мозги немного повернулись и познакомился с новыми для себя концепциями.

2016-10-02

Трилогия The Three Body Problem


Cixin Liu назвал свою трилогию Remembrance of Earth's Past. Топовая Hard Sci-Fi, держит в напряжении до самого конца, и при чтении создается очень странное ощущение: вроде бы всё пропало и конец света неизбежен, но впереди еще полторы тысячи страниц и ты замираешь в ожидании. Лю Сицин тебя не обманывает: проблема решается, но возникает очередная проблема такого масштаба, что предыдущая кажется детскими шалостями. Причем масштаб действия экспоненциально растет от цепочки странных событий до целой вселенной.

Вселенная – темный лес, где все затаились. Как только кто-то открывает свое местоположение, его уничтожают как потенциальную угрозу. Сюжет построен вокруг того, что Земляне раскрывают свое местоположение Альфа-Центаврийцам, цивилизации Трисоляриса, более развитым, но все еще не приблизившимся к скорости света. Четыре сотни лет отделяет Землю от прибытия флота, но всё осложняется тем, что на Землю прибыл многомерные искусственные интеллекты – Софоны, свернутый в трёх измерениях до размера атома. Задача Софонов вносить хаос в эксперименты с элементарными частицами на коллайдерах, чтобы заблокировать развитие науки до прибытия флота. Мир Трисоляриса нестабилен из-за неразрешимости проблемы трех тел – обитаемая планета либо сжигается дотла одним из светил либо замерзает в пучинах космоса, именно поэтому Трисолярис хочет захватить систему Солнца, а не уничтожить её.

Читается на одном дыхании. Если вам понравился Квантовый ПринцЗолотой Век или Сага о Возвышении – читать однозначно. Кстати сам Брин назвал цикл лучшей китайской фантастикой из переведенных на английский. И уже снимается фильм, хотя я сомневаюсь что можно уместить такой масштаб в полтора часа.

2016-09-09

Черногория 2016

Подготовка

После поездки через турагентство в Тайланд, решили организовать собственный тур и поехать дикарями. Выбор, в основном ограниченный безвизовыми странами, пал на Черногорию. Почитали про различные раойны и выбрали для проживания Будванскую Ривьеру, а именно Бечичи, как находящуюса в центре. Взяли билеты, забукали апартаменты на букинге и внесли 30% предоплату примерно за месяц до отправления.

Дальше будет дичайший лонгрид, который я писал 4 дня.

2016-09-07

Мастерство учителя

Решил подтянуть матчасть и обнаружил книгу Дуга Лемова. Книга мне не понравилась и не стоит потраченного на чтение времени, дальше расскажу почему.

Подозрение ко мне закралось еще в самом начале, когда на 50 страниц (из 400) рассказывалось про то какая это книга замечательная, как великолепные школы, которые организовал автор, творят чудеса. Второе разочарование меня постигло, когда стало понятно, что книга не про обучение вообще, а про обучение первоклашек чтению 100 страниц и всему остальному 250 страниц. Я ничуть не преуменьшаю важность этого процесса, но данная книга оказалась для меня абсолютно нерелевантной. Все это наложилось на не совсем адекватный перевод с примерами на английском языке. По сути, книга – конспект тренинга для учителей, который проводит автор в своих школах.

Весь материал книги разбит на два странных раздела и состоит из 60 стратегий, которые я бы назвал стратагемами и разбил на следующие категории: четко фромулируйте свои желания; убеждайтесь, что вас поняли; экономьте время и поддерживайте темп, важен конвейер и автоматизм.

Вторая проблема, которая меня коробула на протяжении всей книги – это безапеляционные заявления об эмпирических выводах не подтвержденных ничем кроме заявлений автора. Да, автор утверждает, что отсмотрел тысячи часов выдеозаписей уроков у лучших учителей и раскрыл все секреты, но население острова Вануату тоже долго смотрело за карго-транспортом, но до сих пор почему-то не взлетело. Более того, я был не согласен с некоторыми утверждениями о процессе обучения.

Вместо этой книги, лучше почитайте Педагогическую Поэму она хотя бы интереснее.


2016-09-06

Голая статистика

В университете я статистику считал не интересной, но сейчас осознал потребность, пошел искать и сразу нашел эту превосходную книгу от Чарльза Уилана. По словам автора, осовремененная версия книги "Как лгать при помощи статистика" от Даррелла Хаффа. Книга не изобилует формулами (все математические разделы вынесены в отдельные подглавы) и простым языком доносит основные понятия статистики: отличие среднего и медианы, Гипотезы, Управляемый Эксперимент, Систематические Ошибки, Центральная Предельная Теорема и Линейная Регрессия.

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

2016-08-31

Итоги 2016

Очередные, пятые, итоги. Предыдущие: 121314, 15.

Победы

Слетал в Екатеринбург и встретился с коллегами. Наконец оторвал свою задницу и скатался в Тайланд и Черногорию. Почему? – Потому что безвизовые. Не зря учился на категорию А – знатно покатался на прокатных мотоциклах. Сходили в зимний поход выходого дня с ночевкой.

Отвел два предмета у студентов: Операционные Системы у первого и ТРПО у второго. В процессе получился учебник по Ubuntu на 150 страниц. Нашел падавана для всяких мелких задач, которые годами висели в списке и таки сделали один из проектов. Морально поучаствовал в сдаче на права.

Практически закончилась долгая эпопея с налоговой, что встало мне в нехилую сумму. Перешел на патент – что значительно уменьшило налоги.

По ощущениям читал достаточно, хотя и не про все писал. Прочитал пару серий и жду когда выйдут оставшиеся, тогда и отпишусь. Для того чтобы рекомендовать студентам – просмотрел несколько учебников по программированию.

Поражения

Совсем перестал писать в блог – времени нет совершенно. Практически забросил сноуборд, хотя область катания в Шерегеше значительно расширилась. Купил мотоцикл, но за весь сезон едва проехал несколько сотен километров. Из запланированного – на AAF так и не пошел учиться, видимо так и не пойду. Визу американцы не дали поэтому командировка обломилась. В Европу так и не съездил.

Попытался организовать тусовку для студентов, но так и не смог организовать – стухло практически сразу.

Планы

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

2016-08-11

Риддл. Трилогия Тайна Происхождения

Совершенно случайно увидел рекомендацию на Амазоне и 3,000,000 копий очень заинтриговало. В итоге не ошибся. Восхитительная трилогия (Ген Атлантиды, Чума Атлантиды, Зов Атлантиды) от А. Дж. Риддла. Это как фанфик по современной популярной фантастике, без хардкора, без претензий на космооперу, здесь вы вспомните про Звездные врата и Прометея, про Mass Effect, про еще дюжину названий книг, фильмов, игр. Давно я не читал такого концентрированного экшена: три книги проглотил за два дня. Таинственные артефакты павшей цивилизации, таинственные службы, суперагент который выживал в невозможных ситуациях, путешествия во времени, путешествия в космосе, генная инженерия, чума, выкасившая пол человечества и не поддающаяся никакому сдерживанию, терраформирование таинственные пришельцы которые воюют с еще более танственными другими пришельцами, а посреди космической войны попали наш предки. Все это вертится вокруг реальных событий, но им дается зловещая интерпретация в лучших традициях теорий заговора. В книгах есть решительно всё, количество роялей в кустах поражает и от этого еще более захватывающе. Повторюсь это не Hard SciFi, поэтому много вещей может показаться неостаточно достоверными, но все это пожертвовано ради насыщенного непрерывного действи, все три книги описывают считанные дни.

2016-08-09

Руководство по Java 8 от Шилдта


Продолжаю листать учебники по Java. В отличии от цикла Head First, Шилдт написал классическое серьезное руководство. Шилдта выгодно отличает от всех остальных книг то, что он освещает возможности, добавленные в Java 8. В частности, лямбды, а это – на минуточку, game-changer, меняющий очень многое в языке, стандартной библиотеке и вообще в подходе к решению типовых задач на низком уровне.

Книга написана для тех, кто уже знаком с программированием вообще и ООП в частности. Руководство для начинающих почти полностью входит в полное руководство, за исключеним задач. Поэтому, если вы торопитесь, берите 700-страничное руководство для начинающих, если под рукой нужен обстоятельный справочник, то берите полное, 1500-страничное.

Последний раз, когда щупал джаву, мы сидели на 6-й и только только начинали смотреть на 7-ю. Поэтому обновил для себя возможности 8-й. Хотя и вижно было что книга постоянно дописывалась, и на восьмую было уделено не так много места.

2016-07-31

Программист – прагматик

Очень странная книга. Обо всем и ни о чем. Ощущение, что технические вещи, попытались пересказать чрезмерно упрощенным языком для людей далеких от профессии. С одной стороны все советы дельные, с другой – язык которым они донесены очень странный, плюс на это наложился перевод, который был сделан явно до появления устоявшейся терминологии. Зачастую приходилось угадывать о чем идет речь.

В процессе чтения у меня возникало явное чувство дежа-вю: возможно я начал читать, но потом бросил, либо в каких-то книга приводились общирные цитаты.

Декларируется, что книга для начинающих, я бы сказал для тех, кто уже имеет несколько лет опыта в профессии и пощупал реальные вещи.

Хотя это и не полный отстой вида "Как пасти котов", но читать эту книгу сейчас сродни статье Go to statement considered harmful Дейкстры – индустрия согласилась и пошла дальше. По конкретным техническим вопросам лучше почитать специализированные книги: Dependency Injection и The Art of Unit Testing.