2014-08-31

Итоги 2014


Продолжая традицию 2012 и 2013. Год оказался очень спонтанным из заранее запланированного была только поездка в Омск и сноуборд, все остальное организовывалось за пару месяцев.

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


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

Заморочился и замутил руками пару вещей - бесполезно, но зато интересно. Пару раз приезжал домой и помогал другу на производстве рекламных конструкций - теперь я знаю что магии нет. Поучаствовал двух Open-Source проектах: сумел пропихнуть маленький пуллреквест в Jetty и довольно сильно попатчил hgext.markdown.

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

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

Сплав по Средней Катуни

Кому лень читать, может посмотреть видео основных моментов.

Подготовка

После развлечений на Казыре год назад я просто не мог отказаться от предложения друга скататься на организованный многодневный рафтинг-тур по Катуни. Организацию брала на себя контора Эквесто (программа тура). Как оказалось позже они выдавали все что нужно: спасэкипировку, гидрокостюм, спальник, коврик, палатку, туалетный набор из Икеи, 120-л гермомешки (в итоге электроника была в гермокошельке, в гермомешке, в рюкзаке, в гермомешке). Готовили и кормили, оплачивали баню и кемпинги. В группе шло два инструктора: один сидел на руле, другой - вылавливал смытых с рафта на каяке.

2014-08-29

Three month of rocking whole industry

Motivation

More then four moths passed since I decided to ride the wind of changes which gave me enough momentum to jump out of gravity well and three months with my new team. Next anniversary near but I didn't wrote anything about this. Really changing the workplace is all about will, first and success contact I get in some hours. I got 6 hours of interview in next two week indeed. But first one was great: remote work (so I can stay near taiga and mountains and snow) on foreign (why shoult you limit yourself with one city or even country) startup (big corporation and bodyshops is leaching you passion and energy) and last but not least was IDEA behind company: changing the whole industry of insurance - it was thrilling.

2014-08-17

Русская модель управления

Великолепнейшая книга, постоянными ссылками на сотни источников скорее напоминает не популярую литературу, а научное исследование. Автор рассматривает историю России со времен образования Московского государства до кризиса 1998 года, когда была написана книга. Прохоров сравнивает вызовы, которые стояли перед западной моделью управления и перед Россией, что и привело к тому что мы имеем на протяжении последней тысячи лет. Внешние признаки, институты менялись, но внутренние механизмы всегда колебались между двумя состоянияниями: стабильном и кризисно-мобилизационном. Чем резче перемены в социально-политическом строе, тем заметнее неизменность базовых, структурообразующих элементов национальной системы управления.

2014-08-12

Зачистка старого хлама

На домашнем десктопе стояла винда, семерка. Подарили в университете с Academic Alliance, как поставил пять лет назад так и стояла. После университета, когда приходишь с работы, что-то делать нет совершенно никакого желания максимум поиграть - так и использовал. Хотя домочадцы пользовались довольно активно для сефинга по сети. Именно это меня и смущало: регулярные обновления, родной антивирус, adblock, запрет на скачивание, запрет флешек, пользовательские права - максимальный уровень паранойи. Особенно когда рядом комп стабильно раз в месяц носили переустанавливать из-за очередного зверя, который попячил все до чего дотянулся.

2014-08-07

Про истинный смысл ORM

В программировании есть несколько тем, которые любят объяснять люди не готовые к этому. Мои любимые темы:
* рекурсия на примере факториала - что за бред
* тестирование на примере арифметических операций, которое примитивно до невозможности, чтобы объяснить тестирование нужно сначала вкурить SOLID и рассмастривать сложные примеры близкие к реальности
* ООП на примере калькулятора - не надо натягивать сову на глобус, или графических фигур - чуть лучше, но неопытный объяснятель может не знать про LSP и рано или поздно скатывается в проблему квадрата-ромба. Еще одним открытием может стать множество видов полиморфизма. Чтобы объяснить параметрический полиморфизм, нужно сначала понять обобщенное программирование. Проблема курицы и яйца. Сюда же rich vs anemic, AOP и другие вопросы.
* Что-то мне подсказывает что большая часть статей про монады объясняют совсем не то что нужно.

Недавно меня накрыло на тему ORM. Главной причиной всех танцев с абстракцией от БД подается возможность легко заменить базу данных. Что?! За?! Бред?! За все годы работы я видел две смены БД в проекте: с Oracle 9 переехали на Oracle 10 XE, а с MySQL переехали на MariaDB. Под этим флагом идет безнадежная борьба за чистоту запросов: только JPQL/HQL, скажем нет нативным запросам. Вдруг мы захотим сменить БД. К сожалению, рано или поздно наступает момент, когда выразить запрос средствами ORM становится невозможно, либо он достигает совсем неприличных размеров и, скрепя сердце и зажмурившись, программист пишет нативный SQL.

Внезапно все меняется, если посмотреть на ORM как на оптимизатор рутиного CRUD-а и не более. Если для сложной выборки быстрее написать SQL, то не нужно мучить ORM, рядом можно нарисовать DTO-шку, чтобы ORM закинул в него данные. Пуристы забывают про то что это нужно для экономии времени и сокращения количества ошибок в программе со 100500 формочками. Время машины стало дешевле времени человека и мы можем себе позволить неэффективность в маленькой области, выигрывая в целом.

2014-08-05

Functional thinking

После активной работы с groovy, остро стало не хватать теоретической базы ФП. Набрел на этот четырехчасовой видеокурс. Neal Ford на примере Groovy, Clojure и Scala показывает отличие подходов от Java - ООП. Главная идея, проходящая через всю книгу: OO makes code understandable by encapsulating moving parts. FP makes code understandable by minimizing moving parts. В его примерах объем кода сокращается в разы. Два главных примера, на которых идет рассмотрение - это факторизация числа и поиск совершенных чисел.

Neal упомянул одну из проблем, которая меня смущала - нет устоявшейся терминологии и каждый язык называет базовые функции по своему: fold, inject, reduce. Базовых примитивов оказалось не много: map, fold, filter. Почти все в видео я уже знал и применял, из известного, но не применяемого интересная оптимизация - memoize.

Упоминул автор и про Blub Paradox: для меня это выглядит как совершенная невозможность заниматься отладкой кода.

Итог: будет интересно как введение в ФП. На очереди, судя по всему, курить теоркат.

2014-08-04

Прыжок с парашютом

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