2014-12-21

Трилогия о Жане ле Фламбере

Ханну Раянеми создал просто фантастическую (тавтология) пост-человеческую вселенную. Первые две книги - "Квантовый вор" и "Фрактальный принц" переведены, "Causal Angel" на очереди. Что мне нравится в Sci-Fi такого уровня, так это абсолютная чуждая вселенная при этом внутренне не противоречивая. Пост-человеческая фантастика которую я читал "Golden Age" от Джона Райта и "Иллион"/"Одиссея" от Дэна Симмонса - Ханну составил им достойнейшую конкуренцию. Если вы фанат фантастики - читайте не раздумывая.

2014-12-14

Неделя в Шерегеше

Ожидания (это не я)
Я видел у себя в голове картинку типа такой: месяц подряд, встаю до рассвета, взобраюсь на гору, креплю доску, скатываюсь и иду работать. Как это обычно бывает "не в покер, а в преферанс, и не пятьсот, а пятьдесят" - а так все как видел в голове с поправкой на суровую реальность.

TL;DR ехать в геш нужно только на несколько дней с полноценным каталовом, жить там не стоит.

Реальность

2014-12-13

Пол года с Groovy и Grails

Пол года уже как пишу на Groovy/Grails и пора бы уже сформулировать отношение к этим вещам в письменном виде. Сравнивать буду, естественно, с Python/Django. Совсем немного пощупал cherrypy/jinja когда готовил олимпиаду для студентов, но они не сильно отличаются.
TL;DR версия: groovy восхитителен, джависты, для мелких тасков крутейшая штука, берите и используйте, grails не нравится потому, что рвет связность кода, особенно заметно на больших масштабах и совершенно немодульный.

Дальше будет описание отдельных аспектов и иногда сравнение.

2014-11-26

Мир полный демонов. Наука - как свеча во тьме

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

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

2014-10-25

Про Git и Mercurial

Моя борьба с git длится уже пятый год. Большую часть времени я его просто игнорировал. Последние пол года начал активно работать. Вообще, прекрасная иллюстрация импринтинга: первой системой была svn, а затем произошел переезд на идейного наследника mercurial - после чего git кажется технологией пришельцев. Первые попытки были вынужденными: нужно было попатчить драйвер couchdb для диплома, заслать пару пуллреквестов - каждый раз приходилось открывать шпаргалку и копипастить команды в консоль. Не помогла даже книга Pro Git, пол года назад пролистал еще раз - пока читаешь - все понятно, но повторить не смог бы.

Есть базовая идея, которая лежит в основе, без понимания которой все остальное не имеет смысла. В идеологии git есть один мастер бранч, все остальные - временные недоразумения, которые либо вливаются в главный, либо удаляются целиком, безымянные бранчи не могут существовать (хотя конечно есть reflog). В mercurial, как наследнике svn, бранчи - полноценные долгоживущие сущности, которие живут и после слияния. Поэтому граф git выглядит как корень дерева, а mercurial - как крона. Поэтому в git сложно взглянув на граф определить в каком бранче был сделан коммит, как он попал в текущую ветку и если ли эти изменения в ней вообще.

Другая идея важная для понимания - в git, пока не был сделан merge или rebase, визуально четко разделяются чужие ветки и твои (branch-name vs origin/branch-name) поэтому fetch совершенно безопасен, поэтому push --force деструктивнее, но крайне удобен если понимаешь, что ты делаешь, в mercurial как только коммит попал к тебе, он становится твоим сразу же, поэтому hg strip приходится делать каждому разработчику. Интересно, что mercurial органично впитывает лучшие идеи git: strip, rebase, rebase -i, stash, backup copy при деструктивных операциях - обратного дрейфа не заметно.

После того как освоил инструмент, обязательно начинаешь затачивать под свой workflow. Недавно, задействовав все свое bash-fu, родил монструозный алиас, чтобы понять в каком же бранче находится закрытый тикет (на самом деле главное - смерджен/не смерджен). Делать
git log --grep
git branch --contain
быстро надоело, поэтому легко заменить на
git gb #ISSUE-1234
при помощи
gb = !git --no-pager log --format=\"%H\" --decorate --all --grep=$1 | xargs -I {} sh -c \"git branch --contains {}| paste -sd ',' - && git --no-pager log --oneline --decorate {}^..{}\"

ЗЫ

Великолепный курс от codeschool
Интересная статья от tonsky
Мой .gitconfig

2014-10-12

Про уплату налогов

Заключительный пост из цикла про ИП.

UPD от 2014-12-21: Как платить налоги в валюте. Вкратце: с 2013 года, если вы продаете по курсу ЦБ на момент продажи, то курсовая разница не учитывается. Если по курсу банка и стоимость валюты выше курса ЦБ, то возникает курсовая разница с коротой нужно уплатить налог.

Рассчет налога по УСН

Подробности по рассчету здесь. Вкратце: за год ИПшники должны выплатить 17,328.48 руб первых 300,000 руб дохода + 1% с того что сверху в ПФ и 3,399.05 руб в ФФОМС. Затем считается сумма налога в 6% и из неё вычитается то, что было уплачено в ПФ и ФФОМС. Т.е. если вы зарабатываете больше 300,000 руб, то эффективно вы будете выплачивать только 6%, всяких отчислений вы просто не увидите. Чтобы сделать упомянутый вычет нужно платить в ПФ и ФФОМС поквартально максимально возможную сумму, которую бы вы заплатили из налогов (первые периоды вычет будет равен налогу, в последних весь возможный вычет уже будет сделан и останется только 6% налог).

Онлайн бухгалтерия

Когда регистрировал ИП, в Альфа Банке сказали что они теперь работают не с Эльбой а с Моё Дело (если не ошибаюсь). Тем не менее, я подключил Эльбу, они подарили максимальную версию на год. Почти весь головняк с выплатами снимается. Главная боль всех бухгалтерий - работа с валютой, приходится руками раз в квартал корректировать платежки перед уплатой налогов, которые выгружает Эльба из Альфа-Банка. После этого в несколько кликов рассчитывает сумма и прямо в онлайн-банке создаются нужные платежки, которые руками подписываются и отправляются. Мега удобно.

Валюта

Главная проблема в том, что с момента прихода валюты на внешний счет и конвертацией в рубли может пройти несколько дней и курс рубля обязательно изменится. Если рубль усилился, то вы потеряли деньги и на этом все. Если же рубль упал, то вы за это время получили доход, который тоже подлежит налогооблажению. Тут мнения сильно расходятся. Кто-то платит на момент прихода денег по курсу центробанка, кто-то на момент получения рублей. Самая замороченная версия с уплатой налогов с курсовой разницей, которой я придерживаюсь. Из одного платежа в бухгалтерии нужно сделать два: первый платеж в момент прихода денег с суммой в рублях по курсу ЦБ на момент прихода, второй - курсовая разница, которая может быть положительна или отрицательна. Дальше эльба рассчитывает платежи и я забываю о ней на три месяца до следующей СМСки с напоминанием.

2014-10-11

Про личное пространство

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

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

2014-10-07

Про макроэкономику

Небольшая зарисовочка

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

Рядом стоит другой продавец и вырезает ценники.
- Такими темпами вам каждый день придется ценники менять
- Ну не настолько часто конечно
- Может проще на У.Е. перейти как раньше?
- Ага щас! Не зря же мы санкции вводили, пусть у них остаются их суррогаты денежные!

2014-09-28

Паспорталипсис

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

2014-09-13

Девид Брин. Сага о возвышении

Захватывающая космоопера уровня Симмонса и Райта, хардкорный sci-fi, морально этические вопросы, совершенно захватывающие концепции иных порядков жизни, непротиворечивая вселенная - что еще нужно, чтобы на две недели погрузиться в чтение?

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

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

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

«Существует расовая память, Том и Джилл. Воспоминания, которые доступны путем напряженных размышлений и сосредоточенности. В наших подобных снам легендах постоянно возникает один образ – обезьяноподобное существо плывет по морю на стволе дерева, размахивает каменным топором, кричит, что оно завоевало море, и требует у равнодушного космоса поздравлений со своим подвигом.
И я спрашиваю у вас: какой приличный патрон позволит клиентам вести себя таким образом? Быть таким нелепым?
Нет. Мы с самого начала могли сказать, что вы, люди, выращены любителями, то есть самими собой».

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 вылет и пришлось ждать своей очереди больше трех часов - тупо батонились и созерцали парашютистов. Некоторые умудрились совершить по нескольку прыжков. Тандемщиков были единицы.

2014-07-31

Балдеющие от адреналина и зомбированные шаблонами

Веселое и легкое чтиво от Тома деМарко и Тимати Листера. 86 историй - наблюдений, многие из ситуций я наблюдал, со многими согласен, истории и хорошие и плохие. Не стоит ждать от книги чего-то нового. Вообще книга могла бы называться "байки у костра" - истории никак не связаны, после первой истории рассказчик выпивает пива, а сосед говорит: "А вот со мной случилость вот что".

2014-07-24

Поднебесные Зубья 2014

Продолжение темы внезапного похода.

День -1, Пятница

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

День 1, Суббота

В убыточную электричку набилось столько народу, что стояли не только в проходах, а еще и между сиденьями. На ближайших четырех станция народ продолжать упаковываться употребляя крепкие выражения. Все два часа пришлось стоять, хотя ближе к Лужбе места освободились.

Приехали, переправились, но вместо того чтобы идти пешком в горку решили доехать до талькового карьера на урале, что эффективно сокращало самый сложный участок пути на 8 кмлометров. В кузов набилось человек 30 с рюкзаками. Аттракцион же состоял в том, что необходимо держаться за борт, чтобы не вывалиться из кузова, но при этом тебя жрет туча оводов и как-то нужно от них отбиваться. Дошли оставшиеся 4 км до Рубановского стана, нашли тенистую полянку в лесу в 200 метрах от приюта и встали легерем.

2014-07-23

Экипировка на Поднебесные Зубья


Год назад мы уже ходили на Поднебесные Зубья, в этом году решили повторить, сходив на 4 дня. 6 человек, половина - новички, спать решили в палатках а не в приюте, хотя встали все там же - возле Рубановского стана, первую половину пути проделали на местном такси: в кузове урала.

Экипировка

Прежде всего я решил учесть опыт предыдущих походов и доэкипироваться, но приходилось учитывать жесткое ограничение по весу в 14 кг из которых только палатка весила 4 кг. В итоге, выбросив вообще все, удалось ужаться до 16 кг. Потом загрузили еще 6 кг продуктов. Все четыре дня жалел, что не взял ту или иную шнягу, но это с лихвой окупилось, когда мы совершили 12 км марш-бросок до станции, сделав небольшой крюк до Глухариных водопадов и пробираясь остальную часть пути по болоту.

Обувь

Я получил незабываемый массаж ног, во время ходьбы по куруму и буквально на следующую неделю побежал за трекинговыми ботинками Mammut mercury GTX, плюсы: прекрасно вели себя на острых камнях, на сухих камнях, на мокрых камнях, нога осталась сухой после ручьев и пробежки по болоту, минусы: к концу четвертого дня онемели пальцы на ногах (возможно стоило взять на размер больше), и если вы решите трижды перейти реку в брод, то ботинки будут мокрыми ближайшие три дня.

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

Одежда

Шапка с широкими полями и антимоскитной сеткой осталась дома, не пройдя весовую цензуру, заменил банданой, самым мощным кремом от загара и спреем от насекомых. Спиральки, кстати, тянули аж на 200 грамм и тоже остались дома.

Долго искал софтшелл куртку и штаны. Куртка какая-то ноунейм, а штаны-шорты columbia silver ridge из спортмастера. Обе две не справились с отводом влаги в момент пиковых нагрузок, хотя, когда более-менее расслабился штаны высохли. Крайне удобным оказалась возможность отстегнуть штанины по выходу к электричке, которые я по колено загадил, пока бежали по болоту. Кстати, штанины намокли и прилипли к ботинкам, эффективно защищали их от воды, пока мы не полезли вброд. Не нашел точных цифр по паропроницаемости, но по ощущениям сноубордические штаны гораздо мощнее.

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

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

Снаряга

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

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

Палатка Freetime desert 2 dlx ставится одним человеком за 10 минут, тамбур у меня отжали под запас еды, чему способствовал дополнительная клеенка-пол. Над нами бушевала стихия с ливнем, и был потоп. Утром в палатке была лужица. Подозреваю, что это налило через вентиляционное отверстие, а не через проткнутый пол (надеюсь). Вообще к выбору места стоит подходить очень тщательно и внешне идеально ровное место к утру оказалось весьма каменистым да еще под уклоном и я постоянно соскальзывал с коврика.

Сам же коврик Mammut ultralight mat 2,5 типа самонадувающийся - так вот это полная херня. Под утро, пересчитав ребрами все сучки и камни, я плюнул и надул его ртом. Толщина увеличилась раза в два, что немного спасло ситуацию. Ну а так, летом на земле, с теплоизоляцией он бы справился даже ненадутым.

Для воды взял обычный литровый nestea - с широким горлышком удобно набирать воду. У велобутылки горлышко еще шире, но и заметный вес. Гидратор брать не стал - в прошлом году он протек и залил мне весь рюкзак и спину - да и высасывать воду очень неудобно.

70-ти литровый Karrimor Cougar содержал кучу кармашков, в которые очень удобно можно было упаковать вещи. Но у него был один фатальный недостаток: палатка. Палатка очень объемна и вместе со спальником, ковриком и ботинками занимает основной отсек. Взял в магазине самый большой рюкзак - 115 литров Novatour Yukon V2. Кардинальное отличие - два отсека: основной и клапан. В принципе хватило бы и 95-ти. Если не считать болтающегося клапана, то сойдет.

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

Чего не хватало

Веревки, чтобы сушить вещи. Приходилось сушить на палатках, но внешняя оболочка высыхала только к обеду.

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

Зарядка для телефона. Power bank брать не стал потому, что тяжелый, солнечные батареи достал, посмотрел и тоже не взял, а стоило. В машину стоит взять aux кабел и USB зарядку от прикуривателя - сэкономит не один десяток километров.

Продолжение следует

2014-07-07

Прохождение валютного контроля

Апофеозом банковского приключения стало прохождение валютного контроля, в сумме занявшее три недели. Уложился за несколько дней до дедлайна.

2014-07-06

Как я в банке счет открывал

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

Во сколько обойдется это удовольствие? 5к при открытии и в дальнейшем 2к в месяц, плюс разнообразые комиссии от 0.05% до 1%. Взвесив разные факторы я выбрал Альфа-Банк, дальше прямо там в офисе сидели с девочкой и крутили-вертели проценты, чтобы высчитать наиболее дешевое обслуживание, пока мне не надоело. Отобрал калькулятор и насчитал пакет Импортер, который обойдется примерно в 30к в первый год с учетом стоимости открытия. Я не занимаюсь импортом, наоборот, я занимают экспортом услуг и получаю ежемесячную зарплату, но, видимо, банку не интересны такие как я, поэтому в пакет входят странные вещи типа дополнительного валютного счет. Дальше началось веселье с документами.

Как я регистрировал ИП

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

Итак, шаг номер раз: регистрация ИП для законного ведения внешнеэкономической деятельности. Когда вы регистрируетесь, нужно понимать что финальная подпись на заявлении откроет портал в административный ад, хотя этот шаг оказался самым простым - веселье нарастает со временем. Проблем с иностранным гражданством не было. При открытии важно помнить: даже если дохода нет, то минимальные выплаты все равно должны составить 20 727,53 руб.

2014-06-19

Никогда не ешьте в одиночку

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

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

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

Книга великолепна, читается на одном дыхании.

2014-06-17

Volere: Mastering the Requirements Process

Пол года назад vit-r посоветовал литературу по сбору требований. Тема сбора требований и написания технического задания меня очень интересовала в то время - спустя пару лет блужданий в потемках у нас начали получаться технические задания. А что такое получаться? - это когда фактическое время не сильно превышает планируемое и сам результат не сильно отличается от того, что планировали - никаких подводных камней, выкинуть все и переписать.

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

2014-06-08

Умные будильники

Преамбула

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

Сначала я прочитал у Голодного про браслет Jawbone UP, заказал его, но так и не смог оценить все прелести умного сна. В итоге проблема просыпаться легко никуда не ушла и я решил попробовать скачать какое-нибудь приложение на телефон. Собственно акселерометр есть, что еще надо для счастья. Выбор мой остановился на первой попавшейся программе Sleepbot. Коллега еще упоминал Sleep as Android. Суть не в конкретной программе, а технологии вообще, и если вы не пробовали - я хочу убедить вас попробовать.

2014-06-01

Про свободу и преданность работе

Это один из самых старых постов, я начал писать его года 4 назад. Основная мысль с тех пор сильно уплыла в сторону, но началось все с простого вопроса: одену ли я на себя футболку с корпоративной айдентикой. Ответ: это зависит. Доказательства и примеры того, от чего же это зависит я и собирал все это время. Недавние наблюдения бури в стакане наконец позволили мне закончить этот опус.



Фотография справа вызывает у меня сильное отторжение, я хотел найти контрпримеры, но это все были одноразовые футболки участников мероприятий. Второй вариант - футболка музыкальной группы, но они тоже одноразовые и покупаются чтобы поддержать музыкантов. Третий - футболка какого-то open source проекта. Последний вариант - когда ты [со]владелец, но этого со мной еще не случалось. Здесь и далее, под совладельцем я понимаю бенефициара, получающего прямую выгоду. Потому что, даже если у тебя какая-то доля, условные проценты, но конвертировать в любой момент ты их не можешь, то ты простой сотрудник.

Свобода внутренняя и внешняя

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

Когда мы выпускались, то набравшие больше 85% на итоговом тестировании, могли подать заявление на программу Болашак. Обучение в любом зарубежном вузе, но обязательство отработать 5 лет в Казахстане. Для меня выбор был очевиден: свобода не стоит этого. Я не хочу брать на себя обязательства. Выбирая университет, я выбрал менее крутой, но зато у меня было бы больше свободного времени, которое я могу посвятить развитию.

Когда сотрудник (см выше определение бенефициара) сильно предан компании, излучает любовь, я с уверенностью могу сказать что он променял внутреннюю свободу на деньги, власть, ответственность, доверие, крутую задачу, возможность реализовать какую-то мечту, карт-бланш, вотэва - масштаб и потребности у всех разный, главное чтобы человек почувствовал себя обязанным. Фразы-маркеры: "компания дала тебе возможность", "компания тебя вырастила", "компания доверила тебе", "компания - это семья", "таы должен пожертвовать немного личного времени". Для меня чувствовать себя обязанным кому-то абсолютно некомфотно, когда же это чувство иррационально, то это некомфортно в квадрате. Человек может освободиться только нарушив внутренние принципы (ага, неприступная крепость в голове у человека). Вопрос может ли заниматься творческой деятельностью несвободный человек остаётся открытым.

Гораздо приятнее равное партнерство: я готов с вами работать потому, что наши интересы совпали на этом отрезке пространства и времени, как только сотрудничество перестанет быть взаимовыгодным, наши пути разойдутся. Останется чувство удовлетворения от выполненной работы и ни капли обязательств. Как было круто на заре карьеры подрабатывать: ни бумажного договора, ни обязательсв - два джентельмена договорились о сотрудничестве, которое было взаимовыгодно на протяжении трех лет. В большую компанию я так и не смог интегрироваться и начать говорить МЫ. Хотя, говорить что работаешь в большой компании гораздо приятней, чем в маленькой и никому неизвестной.

Выпас котов

Профессионалы (те, кого я вижу вокруг) внутренне мотивированы, обаладают широким кругозором и собственным мнением. Есть лишь одна проблема: большие риски. Такого человека сложно найти, сложно заменить (хотя за шесть лет наблюдений я ни разу не видел, чтобы уход даже самых казалось бы важных специалистов приводил к катастрофе). Невозможно масштабировать компанию индивидуалистов - её просто разорвет центробежными силами. Поэтому только взаимозаменяемые середнячки и специалисты по гайке на 12. Хотя некоторое количество таких людей полезны, особенно если они привязаны.

Про взаимовыручку

Когда команда сплоченая, то отдельные бойцы всегда будут друг за друга вне зависимости от правоты. Твой товарищ идет в метафорический бой с тобой плечом к плечу и именно он будет прикрывать тебе спину, а не красивые кодексы и генералы. И когда был выбор, я всегда выбирал своих коллег - компании появляются и исчезают, а люди остаются. Это понимаешь, поменяв пару-тройку работ.

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

Есть руководители, защищающие своих бойцов, но это плохо, потому что рискованно, потому что связь этих людей друг с другом теснее, чем с компанией, а что если они разом встанут и уйдут - это плохо для бизнеса. Тут я вспомнил что это писали ДеМарко и Листер в Человеческом факторе - надо будет еще раз перечитать.

Заключение

Это не хорошо и не плохо, just a business. Некоторые принимают правила игры, некоторые нет. Протой тест на свободу: вы можете написать заявление и уйти в команию работающую в этом же городе на соседней улице (чтобы исключить из уравнения лишние факторы)? Что именно вас сдерживает? Не можете? - поздравляю, сделайте с этим что-нибудь. Начните с резюме, пообщайтесь с хантерами - это позволит взглянуть out-of-the-box, узнать себе реальную стоимость, посмотреть на возможности, которые совсем рядом. Не обязательно при этом что-то менять, но вы почувствуете себя гораздо свободнее в диалоге.

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

2014-05-24

Data Visualization with d3.js

Еще один элемент нашего стека - библиотека для визуализации данных. Во-первых - библиотека относится к класу реактивных - т.е. сама реагирует на изменения в исходном массиве данных. Во-вторых - само название расшифровывается как Data Driven Documents. На сайте можно найти огромное количество примеров.

Все визуализации делаются на SVG, доступна возможность анимации и создания интерактивных графиков, удобные средства работы с графиками, визуализация геоданных, множество плагинов. Несколько более высокоуровневых библеотек содержат под капотом d3.js.

Итог: книга дает беглый обзор возможностям библиотеки (хотя рассматривать большие портянки кода очень уныло). Если у вас есть потребность визуализации данных - смотрите в сторону этой библиотеки. The New York Times плохого не посоветует.

2014-05-20

Форум для студентов LVL UP: IT-катализатор

Задумка

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

Первая попытка

Мы подготовили домашнее задание и должны были высылать подавшим заявки, но внезапно выяснилось что посылать решительно некому. Нас уверяли, что шестерни крутятся и все скоро все узнают. Когда за два дня народа не прибавилось, я спросил у знакомой студентки слышали ли они что-нибудь про эту движуху и совсем не удивился, когда выяснилось что никто ничего не знает, а связой при этом пропал и не отвечал на телефоны. Мы с Пандой резко начали думать что делать. Я позвонил Захарову Ю.Н., заведующему моей кафедой, чтобы обсудить ситуацию - он тоже ничего не слышал, хотя по задумке именно заведующие кафедрами должны были предоставить списки крутых студентов. В итоге мы решили миновать промежуточные звенья и заслать емейлы на кафедры. Но время было уже упущено и мы решили перенести мероприятие на послепраздничное время (огород уже посажен, а сессия еще не началась). Зато получили время для более качественной подготовки квеста и докладов.

Вторая попытка

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

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

Квест

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

1. Домашнее задание, дан запароленный zip архив с данными. К архиву прилагается легенда и записка с подсказкой, архив просто вскрыть перебором. (Это почти все сделали, просто скачав переборщик)

2. В архиве находятся логи вида IP:port login pass HTTP-Status. Несколько миллионов строк из них две со статусом 200. Здесь был мой косяк - я закрыл доступ по укзанному адресу и просто забыл его включить, как оказалось самые умные ломились на второй этап из дома (может быть стоило открыть, тогда бы мы увидели победителей еще до начала конкурса). Я указал правильный адрес и все начали на него ломиться. На этом этапе очень многие застряли - всех смутил HTTP который отвечал стандартным апачевским It works. Особо умные попытались доступаться по FTP, попробовать SSH догадалась толко одна комнда. Тут уже отсеялись все, некоторые смогли скачать файлы при помощи pscp, а некотором пришлось давать эти файлы на флешке.

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

Необходимо найти клад
4. Карта офиса, с обведенной локацией. Локация была горшком с надписью Follow the white rabbit. По офису ходил чувак в футболке с кроликом и выдавал следующее задание.

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

5. Найти в поиске специальный ролик (переозвучили вступительную речь Гэбриэла из swordfish), где он дает задание подключиться к WiFi и взломать сайт пентагона (была идея вставить процесс интервью из этого же фильма, но по морально-этическим соображениям пришлось отказаться).

6. Когда они подключались и открывали сайт (очевидно пришлось поднять BIND и закрыть доступ к остальному интернету) начинал тикать таймер и показывалась фотка QR кода, который они видели на 4 этапе (тут две из трех команд сделали шорткат, считав этот код еще на обеде). Остальных ждал неприятный сюрприз - они не дожны были успеть ввести код и в браузере вешался куки и их перенаправляло на страницу Game Over. Сам Пентагон я наклепал на CherryPy джаст фо фан (может быть как-нибудь выложу сырцы всего этого безобразия).


Студенты

Больше всего опасался что никто не сделает первое задание, которое ушло домой, но, опять приятная неожиданность, смогли сделать почти все. В каждой команде были ноутбуки и не пришлось париться с правильным разделением команд. Второе необходимое условие для победы - наличие в команде линуксоида смогла обеспечить только одна команда, которая в итоге и одержала победу. Остальным пришлось ждать подсказок для перехода на следующие этапы. Больше всего опечалило то, что на четвертом курсе у студентов отсутствуют навыки быстрого решения простых задач на каких-нибудь скриптовых языках - когда дело дошло до написания кода все начали открывать Delphi и RAD Studio (о боже), Visual Studio (ну хоть что-то), накидывать на форму компоненты и батоны. После 20 минут набирания кода, пришлось им намекнуть: ребята, не укладываетесь по времени, не дублируйте работу, пока один пишет код, откройте гугл и решите задачу в лоб, на это уйдет 5 минут.

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

P.S. сам доклад, кому интересно.

2014-05-10

Programming Groovy 2

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

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

Отметил для себя развитие языка на нескольких примерах (GORM и SwingBuilder): в сторонней библиотеке красиво написали какую-то функциональность, это вносится в стандартную библиотеку груви, исходная библиотека переписывается на стандартный код. Описание простых примитивов на которых строятся сложные конструкции языка, эффективно уничтожает магию (хотя этих примитивов и больше чем в питоне, сказывается необходимость делать синтаксис совместимым с джавой). В отличие от PEP20 нет философии There should be one - and preferably only one - obvious way to do it. Для многих вещей есть сильно не один вариант реализации. Итог, книгу стоили прочитать раньше, поскольку многие крутые вещи типа замыканий, приходили долгим путем проб и ошибок, а в груви это настолько естественно и повсеместно что я был поражен. Хотя понял бы я их и как бы я их воспринял если бы начал читать раньше - большой вопрос. Одни изобретают деревянные велосипеды, а другие просто пришли в магазин и уехали на транспортном средстве из натотехнологий и современных материалов.

Итог: книга годная, джавистам, стоит бросить все и начать читать - гарантированно расширит сознание.

2014-05-05

Angular.js


Продолжаю изучать стек технологий на будущей работе. Обе книги оказались тоненьким брошюрками. Начал со стартера, закончил DI. После jQuery двусторонний биндинг кажется очень необычным подходом к пользовательскому интерфейсу. Да и вообще разделяя View в большом приложении на собственный MVC, нужно вовремя остановиться. Да и вообще, возвращаться в мир js после vaadin, как учиться заново ходить.

Сам фреймворк содержит роуты, через #!, должно быть поиск-френдли, но так и хочется при первом обращении отдавать отрендереную страницу, а тут и до node.js недалеко (жаль видео еще не выложили).

Про то что инъектить зависимости в JS я даже и не думал. Кстати с этим связана некоторая магия: javascript не умеет получать имена параметров у функциии. StackOverflow: with the blood of demons and spawn of satan, apparently. Regex?! Would be cool if there was a built in way in JS, wouldn't it.

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

2014-05-03

The definitive guide to Grails 2

В срочном порядке осваиваю новый стек технологий. Начал с grails, хотя стоило начать с groovy. Пока читал, сидел и выписывал на бумажку вотзефаки в основном относящиеся к синтаксису groovy (давно забытое чувство, последний раз такое было 2 года назад, когда осваивал maven). Не на все, кстати, нашел ответ - некоторые вещи предстоит выяснить, например, откуда берутся неожиданные методы внутри замыканий.

Сама книга - годный такой справочник проводящий по основным элементам стека: MVC, GORM. В самом grails ничего особо нового по сравнению с тем же django, хотя позади чувствуется огромная махина Spring и абстракции поверх абстракций. Плагины вынесены в самый конец, хотя стоило начать именно с них - полезно за понимания базовых элементов grails.

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

Грельсовцы совершили классическую ошибку, расположив совместно используемые сущности далеко: вместо
package/
    view
    controller
они сделали:
controller/
    package
view/
    package
мы тоже совершили такую ошибку, но осознали и начали потихоньку переносить.

Удивился, что система сборки gant, а не gradle. Как и в django, через метаклассы расширяются доменные объекты и динамические метода проходят через methodMissing, позволяя генерировать разухабистое DAO. После статического мира джавы, несколько неуютно.

Итог: магии почти нет, стек понятный, хотя и очень толстый.

2014-04-28

Прощание на оранжевой волне

15 сентября 2011 года я, будучи молодым и самоуверенным (как же я ошибался: Always wanted to travel back in time to try fighting a younger version of yourself? Software development is the career for you!), пришел в команду новорожденного проекта Orange[UC]e. Мы собирались унифицировать (буква U) коммуникации (буква C), One ring to rule them all. На пути к этой амбициозной цели многие идеи не выдержали испытания реальностью, только спустя два года блужданий в тумане мы нащупали путь и, наконец, создали реальную вещь, которую можно отдать клиентам, за которую можно поручиться, поставить в продакшн и не бояться, что клиенты взорвут службу поддержки, начать пользоваться самим. Вещь, которой можно гордиться в конце концов, потому что люди ей пользуются, люди довольны и хотят большего. 

Некоторые скажут: это волшебная методология проектного подхода сотворила чудо. Я же останусь в твердой уверенности, что все зависит от людей, объединенных в команду, именно они творят чудеса. За эти почти три года команда успела пару раз обновиться: либо люди не выдерживали темпа, либо, прокачавшись, уезжали в региональный Дефолт-сити.

Примерно раз в пол года, как раз после отпусков, на меня нападала меланхолия и неясно тянуло куда-то вдаль, но каждый раз я открывал очередную ступень развития и с радостью кидался на освоение. Наблюдение за жизнью проекта на протяжении значительных промежутков времени необычайно ясно показывает, какие идеи выдержали испытание временем, а какие нет. Наблюдать продукт от initial enthusiasm, до scale: 25 стабильных релизов - от идеи, до выкатки клиентам. Это всё, поистине, бесценный опыт.

Как я уже говорил, для меня необычайно важна команда. Компания перешла на новый этап, пришли новые люди, но ощущения единства растворилось. Послеотпускная тоска была просто невыносимой и, увидев ряд знаков, я понял: настало моё время уходить. Я ухожу без страха за продукт - апельсин настолько повзрослел и набрал импульс, что ему не страшны никакие невзгоды в обозримой перспективе (успеха вам, апельсины). Но ухожу с грустью в сердце, потому что я не буду работать бок-о-бок с такими замечательными людьми как Максим (удачи тебе на новом месте), великолепный собеседник, источник опыта и пример для подражания решительно во всём; Пишник и Миха - неизменные собеседники на обедах всё это время; Дед - старый товарищ, не смотря на то, что наши пути расходятся всё дальше и дальше; Машенька - просто замечательный человек; Викуся - источник жизнерадостности; Наташа - неизменная соучастница и активистка еженедельных тусовок; Танюша - компаньон во многих спортивных дисциплинах. И многие другие, с которыми я общался не так активно, но всегда с удовольствием. Недеюсь, мы продолжим общаться и дальше. Отдельное спасибо Лео и Ольге за... пусть за то, что сделали меня мудрее.

So Long, and Thanks for all the Fish

2014-04-19

Сноубординг сезона 13-14

Итоги сезона

Подведу итоги сноубордического сезона 13-14, он же первый для меня. Открыли мы сезон 8 ноября, закрыли - 13 апреля. Из 156 дней, на доске прошло 28 дней - не дотянул до месяца, но 4 недели есть. Скилл катания удалось довести от полного нуля, до уверенного. Удалось попробовать очень много: почти все стандартные трассы в Шерегеше; Люскус и Танай; фрирайд по горам с забробоской на снегоходе и просто подъем пешком, могул по лесу, скоростной спуск по вельвету; от катания по лужам в дождь до -30, когда каска, очки, маска и куртка смерзаются в одно целое; катание днем и ночью; обратную стойку тоже удалось освоить, хотя и не так уверенно, но все-таки полезно на очень сложных трассах.

Итог 1. Экипировка решает - с нормальной экипировкой можно спокойно откатать весь день даже под проливным дождем и остаться сухим, в одной тонкой термухе катать 4 часа в -30 и не замерзнуть. В каске, черепахе, наколенниках и трусах можно спокойно обнять елку, сесть с размаху на склон или крутануть сальто, поймав кант, постоять на коленях на ледяной корке. Хотя от растяжения это не защитит (особенно скручивающего), и удары все равно ощутимы (даже в каске я умудрился получить сотрясение).
Итог 2. Нахер с трассы. На стандартных трассах делать нечего. Только в лес и дальше, где чистые поля нетронутого снега. Или в горы, куда поднимаются единицы.
Итог 3. Поездка в будни, маленькой компанией непьющих в 3-4 человека позволит взять максимум от катания.

Дальше кулстори про закрытие сезона.

2014-04-05

Codefest 2014

Некоторые думают, что Codefest это такая конференция, где нужно слушать докладчиков и тщательно конспектировать их мысли. Потом спрашивают: а почему так дорого, ведь все доклады появляются в интернете спустя какое-то время. Ответ прост: это не конфа, а ФЕСТ (что отраженов названии), тусовка, где нужно общаться, знакомиться и заряжаться идеями, а доклады - просто приятное дополнение.

Так получилось, что мои мысли были очень далеко и особо на общение не тянуло, поэтому фест я, можно сказать, зафейлил. Хотя и провел время, общаясь со старыми друзями Ольгой и Алексеем.

Codebus

Местные айтишники в лице Ильи Горбарова организовали алкотелепорт на автобусе до Новосибирска и обратно, за что им отдельный респект.

1 день

Внезапно, очень понравился формат квартирников, где шло непрерывное общение с залом. В первый день послушал Michael Palotas про то как в eBay занимаются тестированием - слишком абстракно. Затем пошел к Владу Семенову, где холиворили на тему велосипедов. Главный вывод: использовать существующие технологии, а велосипедить только упершись в потолок. Улыбнул Вячеслав Егоров, с удивлением обнаруживший живых пользователей Dart. Дальше слушали ШипиЛёшу про бенчмаркинг, кто хоть раз пытался замерить производительность оценит. Сергей Шкредов рассказывал про дотнетопроблемы - не очень интересно. На панели про тренды обсуждали очень широкий спектр тем - большинство уснуло. На афтепати все поехали в рестораны, а мы небольшой компанией заломились в японский ресторан, а потом закончили вечер в академовском клевере.

2 день

Асхат Уразбаев рассказывал про то как изменился скрам за последние года. Серьезно его воспринимать после поста jdevelop было решительно невозможно, я сидел и про себя повторял: даааа, кулстори бро. Антон Волков очень инетерсно рассказал про ценности. Про Бобука вообще молчу - лучший доклад феста. Дальше зря сменил секцию и вместо Дорофеева пошел на квартирник Антона Бевзюка по техническому долгу - даа, настал вечер ох...тельных историй, я сам таких историй понарассказываю: и про рефакторинг, и про TDD. После обеда пошел опять на ШипиЛёшу слушать про JMM - лютейший хардкор, обязательно посмотреть всем кто пишет параллельный код. Дальше в квартирнике не получилось послушать про Java, доклад заменили на Kotlin. Пошел слушать Олега Гайдаренко про промисы в jQuery, но после JMM это показалось какими-то играми в пасочки. Побатонился немного и поехал домой.

Предыдущие фесты: 2013, 2012 mini, 2012

2014-04-02

Чтение через шприц

Впервые увидел ссылку в твиттере на spritzinc.com (интересно, не забанят ли приложение после получения патента на spritz). Очень простая идея, но при этом работающая - я дошел до максимума. +Max Doronin скинул ссылку на AutoReader 3D. Бесплатная версия показывает не больше 300 слов в минуту, в это ограничение я уперся мгновенно. Это первое приложение на телефоне, ради которого я полез прикреплять кредитку к гуглоаккаунту. Сама софтина постоянно тупит, не умеет в оглавление. Но умеет открывать FB2 и быстро показывать слова. 3D режим показывает стереопару. Декларируется, что глаза будут расслаблены, но на удалении я не мог объединить в 3D, а на близком расстоянии глаза быстро устают. Тем не менее, для художественных книг супер вещь: очень быстро дошел до 600 слов в минуту, в отвлекающей обстановке читаю на 500, соседи с интересом фтыкают в чудо-технологию. Три последние книги вошли на раз. Техническую литературу со схемами и фрагментами кода читаю по-старинке. Еще одна проблема шприца, как технологии – новые слова. Чтобы воспринять слово, вы должны его знать (помните текст с переставленными буквами). Вообще счетчик идет до 5000 слов в минуту, но я не уверен, что это технически реализуемо. Супер чтение рядом. Кстати в этом посте меньше 200 слов, на чтение которых уйдёт 20 секунд.

2014-04-01

Человек в лабиринте

Книга Силверберга. Главный герой - человек сбежавший от человечества в смертельный лабиринт потому, что его наградили даром/проклятием телепатически передавать свои истинные эмоции людям, находящимся в радиусе нескольких метров. Богатый жизненный опыт не способствует тому, что эти эмоции сплошь положительные: типичная реакция собеседника - свернуться калачиком и зарыдать или бежать в ужасе если не случилось первое. Что хотел сказать автор, я так и не понял, вики говорит про парафраз драмы о Филоктете. Но тот же Симмонс оставляет его далеко позади со своими Иллионом и Одиссеей. Итог - не стоит тратить время на эту книгу.

Так говорил Заратустра

Ницше написал 80 речей из которых я думал, что до меня дошла каждая десятая (надо будет как-нибудть перечитать спустя какое-то время). Затем я прочитал предисловие и понял что огромный пласт смыслов прошел мимо. Отсылки к библии, Гёте и другим трудам, необходимость нативного немецкого, чтобы понимать игру слов - все это поставило крест на попытке осмыслить все речи. Хотя, те крупицы, что дошли были очень сильны:

Странник

И ещё одно знаю я: я стою теперь перед последней вершиной своей и перед тем, что давно предназначено мне. Ах, я должен вступить на самый трудный путь свой! Ах, я начал самое одинокое странствование своё!
Но тому, кто подобен мне, не избежать этого часа — часа, который говорит ему: «Только теперь ты идёшь своим путём величия! Вершина и пропасть — слились теперь воедино!
Ты идёшь своим путём величия: что доселе называлось твоей величайшей опасностью, теперь стало твоим последним убежищем!
Ты идёшь своим путём величия: теперь лучшей поддержкой тебе должно быть сознание, что позади тебя нет больше пути!
Ты идёшь своим путём величия: здесь никто не может красться по твоим следам!  

Твои собственные шаги стирали путь за тобою, и над ним написано: «Невозможность».
И если у тебя не будет больше ни одной лестницы, ты должен будешь научиться взбираться на свою собственную голову: как же иначе хотел бы ты подняться выше?
На свою собственную голову и выше через своё собственное сердце! Теперь всё самое нежное в тебе должно стать самым суровым.
Кто всегда очень берёг себя, под конец хворает от чрезмерной осторожности. Хвала всему, что закаляет! Я не хвалю землю, где течёт — масло и мёд!

Чтобы видеть многое, надо научиться не смотреть на себя: эта суровость необходима каждому, кто восходит на горы.
И если кто ищет познания назойливым оком, как увидит он в вещах больше, чем фасад их!
Но ты, о Заратустра, ты хотел видеть основу и подоснову всех вещей; и потому должен ты подниматься над самим собою, всё выше и выше, пока даже твои звёзды не окажутся под тобой!
Да! Смотреть вниз на самого себя и даже на свои звёзды — лишь это назвал бы я своей вершиной, лишь это осталось для меня моей последней вершиной!

О священниках

О, посмотрите же на эти жилища, что построили себе эти священники! Церквами называют они свои благоухающие пещеры.
О, этот поддельный свет, этот спёртый воздух! Здесь душа не смеет взлететь на высоту свою!
Ибо так велит их вера: «На коленях взбирайтесь по лестнице, вы, грешники!»
Поистине, предпочитаю я видеть бесстыдного, чем перекошенные глаза стыда и благоговения их!
Кто же создал себе эти пещеры и лестницы покаяния? Не были ли ими те, кто хотели спрятаться и стыдились ясного неба?
И только тогда, когда ясное небо опять проглянет сквозь разрушенные крыши на траву и пунцовый мак у разрушенных стен, только тогда опять обращу я своё сердце к жилищам этого Бога.
Они называли Богом, что противоречило им и причиняло страдание; и поистине, было много героического в их поклонении!
И не иначе умели они любить своего Бога, как распяв человека!
Как трупы, думали они жить; в чёрные одежды облекли они свой труп; и даже из их речей слышу я ещё зловоние склепов.
И кто живёт вблизи их, живёт вблизи чёрных прудов, откуда жаба, в сладкой задумчивости, поёт свою песню.
Лучшие песни должны бы они мне петь, чтобы научился я верить их избавителю: избавленными должны бы выглядеть его ученики!
Нагими хотел бы я видеть их: ибо только красота должна проповедовать покаяние. Но кого же убедит эта закутанная печаль!
Поистине, сами их избавители не исходили из свободы и седьмого неба свободы! Поистине, сами они никогда не ходили по коврам познания!
Из дыр состоял дух этих избавителей; и в каждую дыру поместили они своё безумие, свою затычку, которую они называли Богом.
В их сострадании утонул их дух, и, когда они вздувались от сострадания, на поверхности всегда плавало великое безумие.
Гневно, с криком гнали они своё стадо по своей тропинке, как будто к будущему ведёт только одна тропинка! Поистине, даже эти пастыри принадлежали ещё к овцам!

У этих пастырей был маленький ум и обширная душа; но, братья мои, какими маленькими странами были до сих пор даже самые обширные души!
Знаками крови писали они на пути, по которому они шли, и их безумие учило, что кровью свидетельствуется истина.
Но кровь — самый худший свидетель истины; кровь отравляет самое чистое учение до степени безумия и ненависти сердец.
А если кто и идёт на огонь из-за своего учения — что же это доказывает! Поистине, совсем другое дело, когда из собственного горения исходит собственное учение!
Душное сердце и холодная голова — где они встречаются, там возникает ураган, который называют «избавителем».
Поистине, были люди более великие и более высокие по рождению, чем те, кого народ называет избавителями, эти увлекающие всё за собой ураганы!
И ещё от более великих, чем были все избавители, должны вы, братья мои, избавиться, если хотите вы найти путь к свободе!
Никогда ещё не было сверхчеловека! Нагими видел я обоих, самого большого и самого маленького человека.
Ещё слишком похожи они друг на друга. Поистине, даже самого великого из них находил я — слишком человеческим! —
Так говорил Заратустра.