вівторок, 31 грудня 2013 р.

Итоги 2013 года, планы на 2014

Подходит к концу еще один год. Как обычно, подвожу итоги и строю планы, как это уже делал в 2008 году, в 2009, в 2010-м, в 2011-м и конечно же в 2012-м.

Когда на новогоднем корпоративе меня спросили: "Каким он был, твой 2013-й год?" Первое, что мне пришло в голову: разнообразие. Этот год действительно был очень разнообразным в эмоциональном плане. Я открыл для себя много нового, познал дзен много интересного и таинственного.

В отличие от 2012-го этот год был в несколько раз менее насыщенный путешествиями. В основном это был Киев, деловые встречи и никакого кайфа. Из родной страны я выбирался лишь однажды - в марте я посетил Европу - Францию и Германию. Этим мне и запомнится 2013 год, ведь побывать на вершине Эйфелевой башни было моей мечтой с детства, и она сбылась!

неділю, 22 грудня 2013 р.

Программисты - убийцы котят

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

Начну с признания: я правил ядро WordPress там, где можно обойтись фильтрами API. Ниже я объясню, как так получилось. Хочу заметить сразу, что я ненавижу делать подобные вещи и очень сильно и долго готов ругать каждого, кто таким занимается. Один кандидат, увидев в core.php тестового оплаченного задания по Elgg-проекту коммент /* Google says do this, but why? */ дописал строчкой ниже /* lol ) */ и закоммитил. Вместе с еще десятком правок удаления пустых строк и добавлением незначащих пробелов в файлах ядра. Я считаю это недопустимым неумением пользоваться прежде всего системами контроля версий и отсутствием желания разбираться с архитектурой любого проекта (в данном случае - целого движка).

Бывает, сидишь, долго думаешь, как обойтись без правки ядра, как сделать всё "правильно"... Радуешься, когда весь проект можно установить как независимый плагин или тему куда-угодно. А потом кто-то возьмет и зафигачит коммит со сложным функционалом в ядро. И всё, все эти часы переключения мозга на API потрачены безнадежно зря, проект больше не может приносить прежнего удовольствия, да его даже обновить нельзя без дополнительных проблем. Когда-то и я был молод и глуп. Это одна из причин, почему мой блог до сих пор на версии 2009 года со всеми её дырами и багами, спамится ботами и ничего с этим пока не могу сделать.

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

[caption id="attachment_2386" align="aligncenter" width="461" caption="Каждый раз, когда ты ломаешь ядро, Бог убивает котёнка"]Каждый раз, когда ты ломаешь ядро, Бог убивает котёнка[/caption]

После этого я git'ом откатил все предыдущие правки файла в корне, нужный функционал переделал на фильтры API. Затем проделал то же самое со многими остальными измененными не мной файлами ядра. Что заказчик увидел дальше, не сложно догадаться: своим коммитом я нафигачил правок файлов ядра WordPress ровно столько, сколько все мои предшественники, вместе взятые (откат изменений выглядит так же, как и сами изменения). Кого он будет наблюдать всю оставшуюся жизнь проекта среди последних людей, правящих ядро? Кто будет считаться худшим программистом, не беспокоящимся о жизни котят? Будет ли он восхищаться результатами моей работы, как прежде? Теперь фраза "Please, think of the kittens!" у меня больше не вызывает улыбку, потому что я слышу ее от него чуть ли не по каждому новому заданию.

Пожалуйста, всегда думай о котятах. В случае с WordPress старайся изменять только то, что лежит в папке wp-content, чаще всего этого достаточно.

вівторок, 10 грудня 2013 р.

Ломка

Эта цитата достаточно нетипична для моего блога, но всё же мне описание понравилось и я решил его сохранить здесь. Вижу я в этой цитатке более глубокий смысл, чем просто описание чувств наркомана.
Вспомни все случаи в своей жизни, когда ты испытывал страх, сильный страх. Кто-то крадётся сзади, когда ты думаешь, что один, и кричит, чтобы напугать тебя. Шайка хулиганов смыкает вокруг тебя кольцо. Ты падаешь во сне с большой высоты или стоишь на самом краю отвесной скалы. Кто-то держит тебя под водой, ты чувствуешь, что дыхание прерывается, и рвёшься, пробиваешься, хватаешься руками, чтобы выбраться на поверхность. Ты теряешь контроль над автомобилем и видишь, как стена мчится навстречу твоему беззвучному крику. Собери в одну кучу все эти сдавливающие грудь ужасы и ощути их сразу, одновременно, час за часом и день за днём. Вообрази вдобавок всю боль, когда-то испытанную тобой: ожог горячим маслом, острый осколок стекла, сломанную кость, шуршание гравия, когда ты падаешь зимой на ухабистой дороге, головную боль, боль в ухе и зубную боль. Сложи их вместе — защемление паха, пронзительные вопли от острой боли в желудке — и почувствуй их все сразу, час за часом и день за днём. Затем подумай обо всех перенесённых тобой душевных муках — смерть любимого человека, отказ возлюбленной. Вспомни неудачи и стыд, невыразимо горькие угрызения совести. Добавь к ним пронзающие сердце несчастья и горести и ощути их все сразу, час за часом и день за днём. Всё это и есть ломка при прекращении приёма героина. Ломка — это жизнь с содранной кожей.

(c) Грегори Дэвид Робертс. Шантарам

неділю, 1 грудня 2013 р.

Первый раз в филармонии

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

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

Не понравилось, что нет ритма, но мне сказали что так и надо. А еще там один туалет для М и Ж, что не комфортно как-то...