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.

2016-07-13

Изучаем SQL

Продолжаю тему рекомендаций, на этот раз SQL. Опять же, намеренно язык я не изучал. Знакомство с базами данных начал с Access, и еще в школе внезапно понял нормальные формы. В старших классах купил тоненький учебник "SQL в примерах и задачах" Астаховой. Сам учебник очень смутно помню, но судя по отзывам это переработанный и адаптированный старый добрый учебник "Понимание SQL" Грабера.

Я намеренно не стал смотреть талмуд Дейта. Помимо Грабера для изучения рекомендуют учебник Бьюли. С него я и решил начать. Язык изучается на примере безнадежно устаревшей MySQL 4. Справедливости ради даются отсылки к Oracle и MSSQL, но почему-то совершенно обделен вниманием PostgreSQL. Рассмотрены все необходимые конструкции SQL92. Огорчило, что очень мало внимания уделено консистентности данных.

В книге не хватает информации про:
1. ACID
2. нормальные формы и денормализацию данных
3. транзакции и уровни изоляции
4. движок базы данных и оптимизатор
5. структуры данных которые используются для хранения данных/индексов
6. оконные функции из SQL:2003.

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

P.S. если вы читали какую-то книгу по базам-данных/SQL не сильно привязанную к какой-то конкретной базе данных (я знаю про Кейта), а если по новым версиям SQL то вообще круто. Если эта книга показалась вам очень хорошей, оставьте комментарий.

2016-07-11

Цикл Head First по Java


Столкнулся с проблемой порекомендовать книгу по Java. Изучал я, как сейчас помню, на ИНТУИТе. В самом начале карьеры я блуждал в потемках: на огромное количество вопросов приходилось искать ответы, зачастую, методом тыка. Сейчас с позиции опыта решил почитать доступные книги. Решил посмотреть на цикл Head-First Something. Я думал что это тоненькие брошюрки, а оказались здоровенные талмуды по 600 страниц каждый. Не смотря на несерьезный стиль изложения, освещены очень много важных вопросов, ответы на которые сэкономили бы мне очень много времени, если бы я прочитал эти в самом начале. Все три книги можно рассматривать как единый цикл, все ссылаются другна друга и все примеры приведены для Java. Книги являются учебниками, а не справочниками, с отличными примерами и заданиями. Однозначный must-read для новичков.

2016-06-11

За фасадом империи

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

2016-05-11

Введение в Машинное Обучение

Друг очень рекомендовал курс "Введение в Машинное Обучение" от Школы Анализа Данных Яндекса, и, поскольку моя работа напрямую связана с анализом данных, мне стало очень интересно пройти этот курс.

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

В описании курса было заявлено 3-4 часа в неделю, на протяжении 7 недель. По факту это выливалось в потерянные субботы на протяжении двух месяцев. Очень серьезная инвестиции собственного времени. Больше всего времени уходило, на решение домашних заданий. Особенно, когда возникали какие-то проблемы с питоном (уровня перепутал знак функции или невнимательно переписал формулу). Очень не хватало опыта работы с инструментами (ipython, jupyter), с библиотеками (pandas, numpy, scikit-learn). Непосредственно работа с данными была простая как дверь: загружаем данные, вызываем библиотечный метод, делаем прогноз. Тем более, что описание было представлено в лабораторной.

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

Очень не хватало в процессе решения домашних заданий преподавателя, который скажет в правильном или неправильном направлении ты движешься, и сможет ткнуть пальцем в проблему. То как я сорвался и нырнул в совершенно новую для себя тему, напоминает мне как я 4 года назад, точно так же на пару недель занырнул в обработку естественно языка, тоже на питоне, подходы, кстати местами перекликаются. В Машинном Обучении тоже рассматривались методы обработки текста.

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

2016-02-29

Зимний ПВД

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


Ходили мы на опушку за Лесной Поляной через ручей. Глубину снега вы можете легко оценить, хотя он был натоптанный и, если не сходить с тропы, не провалишься. Погода была довольно теплая, безветренная, градусов 5-10 ниже нуля. Пока одна группа валила сухостой и рубила дрова на ночь, другая группа ставила палатки и готовила мясо. К вечеру собрались вокруг костра и отведали блюдо.
Часть народа отправилась по-домам, а мы разбились по палаткам. Когда я постелил спальник с ковриком, осознал всесь масштаб проблемы: не смотря на то, что в палатке постоянно топилась печка и сверху было жарко, лежали мы на снегу и коврик мой не справлялся. Из положения я вышел тем, что разделся, свернул куртку и штаны и положил между ковриком и спальником в те места, которыми я продавливал коврик: бедра и лопатки. В общем, худо-бедно переночевал.
Утром пошел большими хлопьями снег. Мы попили чай и отправились по-домам. Было интересно, особенно послушать про оборудование для походов.

P.S. Долго искал защиту на ботинки от снега, безуспешно пытаясь объяснить в магазинах что мне надо – оказалось, это называется гамаши от снега. Испытания прошли более чем успешно, в походе, если у вас обычные ботинки, просто незаменимы. В штанах на лямках и гамашах прекрасно ходил по-колено в снегу.  Если пойду еще раз в зимний поход, то обязательно возьму коврик потолще.


2016-01-17

Общаться с ребеноком. Как?

На кодефесте 2014 Бобук выступил с интересным докладом "Ненасильственное управление творческими коллективами". Один из тезисов: "Программисты - это дети", поэтому настольной книгой любого руководителя в Яндексе является сабжевая книга Гиппенрейтер. Книга выдержала пол дюжины изданий и стала классикой. Очень интересна и читается на одном дыхании.

Десять уроков:
1. Безусловное принятие
2. Когда можно помогать
3. Как помогать
4. Мотивация
5. Активное слушание
6. 12 ошибочных ответов: приказы, угрозы, нравоучения, готовые решения, доказательства, критика, похвала, высмеивание, догадки, выспрашивание, уговоры, отшучивание
7. Как говорить о своих чувствах
8. Как решать конфликты (win-win)
9. Правила и дисциплина (4 зоны: зеленая, желтая, оранжевая и красная)
10. Про истинные прицины негативных эмоций

Отдельные вещи мне встречались не раз во многих книгах: Кови, Талант переоценен, Как нельзя хвалить детей, Поток. В этой книге все эти идеи собраны и простые ситуации разобраны на пальцах. Не смотря на название, книга может быть полезна не только в общении с детьми. После прочтения, я сильно задумался о своём общении со студентами. Поищу в книжном магазине и подарю одной семье. Книга абсолютно стоит несколькольких часов, которые вы потратите на чтение.

2016-01-10

Java Puzzlers

По диагонали проглядел книгу в которой рассматриваются "особые случаи". Книга написана для Java 5 и издана до того как я вообще познакомился с джавой. 95 загадок, может дюжину-другую я разгадал потому что сталкивался на практике. Все советы относятся к двум категориям: читайте доки/спеки и не надо умничать. Отдельный совет используйте стандартное форматирование - это позволит избежать нескольких выносящих мозг ситуаций.

Я бы не советовал тратить на книгу время, максимум краем глаза. Посмотрите лучше это эпичнейшее видео ruby-wat (нужно некоторое время на загрузку). Или вот groovy версия. Смотреть живое видео гораздо веселее чем читать.

2016-01-07

Y: The Last Man

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

60 выпусков по 25 страниц. История про то как на земле одномоментно вымерли все обладатели Y-хромосомы за исключением молодого нытика с суицидальными наклонностями и ручной обезьяны. Из-за жестокого шовинистического мира, с мужиками вымерло почти всё правительство, военные, инженеры, пилоты и моряки.

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

Из-за чего произошло вымирание и как выживать тоже было непонятно поскольку ученых-биологов-генетиков осталось на весь мир три человека которые могли попытаться клонировать человека и дать шанс на выживание вида (ну может больше, но мы видим только трех с половиной биологов на протяжении всех выпусков).

На удивление мир не погрузился в лезбийский чад кутежа, а последний мужик не занимается осемененим направо и налево в попытке восстановить популяцию, а очень даже пытается попасть к своей девушке, которая на другом конце мира в Австралии. Первый гетеросексуальный контакт происходит ближе к середине в 24! выпуске, а две спутницы мутят в 32-м (специально выписал).

Короче, нормальная социальная антиутопия, весьма интересный сюжет, без хардкора как в манге, но героев убивают только в путь. Ставлю четверку за нелепое объяснение причин вымирания, которое свело на нет всю научность-фантастики (как бы глупо не звучало) и неубиваемую спутницу которая голыми руками косила врагов направо и налево. Вроде как собираются снимать.

2016-01-06

S.O.M.A.


Я не пишу про игры, но S.O.M.A. это исключительное произведение. Особенно если учесть, что я купил её, прошел на треть, потом сказал себе "мне хватает седых волос на голове" и досмотрел летсплей. И это после того как я прошел всю трилогию DeadSpace с одним плазменным резаком. Сюжет игры заслуживает новелизации, фильма и вообще всего что только можно представить. Постапокалиптическая антиутопия, оспаривающая (не знаю как подобрать адекватный перевод challenging) тезис "Мыслю - значит существую" и отвечающая на вопросы которые задавал Лем в Сумма Технологий в разделе про копирование/телепортацию. Должна ли копия прервать страдания оригинала? Как себя будет чувствовать обреченный оригинал, после того как копия спасется? Каково себя ощущать последним представителем исчезнувшего в катаклизме человечества, а потом выяснить что остатки выживших (тех кто не покончил с собой, пытаясь ответить на вопросы копия/оригинал) уничтожили взбунтовавшиеся машины? На самом деле машины пытались спасти человечество, но их понимание "спасения" несколько отличалось от нашего. А потом выяснить что и ты не человек, в биологическом понимании, а от нашего вида остались слепки, живущие в виртуальном мире.

Если ты сопереживал герою, если ты думаешь о книге спустя месяцы после прочтения, она заслуживает твёрдой пятёрки из пяти. Эта вселенная стоит того, чтобы в неё погрузиться.

P.S. Фриксы выпустили несколько неканоничных роликов на тему, хотя они мало что скажут тем, кто не в теме.

P.P.S. Фанаты просят новелизацию, возможно появится