Критерий кода

June 5, 2017

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

Системный файлы фрейморков

June 2, 2017

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

Пикник на обочине

June 1, 2017

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

Если без шуток, то книга и фильм - очень мощные, ни сколько не конкурируют друг с другом. Но такие могучие вещи чаще раза в несколько лет читать/смотреть не готов. Кстати на "Пикник" я наткнулся в разделе бесплатных книг приложения Литреса. Потом прочитал "Юмористические рассказы" Аверченко, понятия не имел про такого писателя и без приложения не нашел бы. Хочу углубится дальше по списку.

Обычный день в Эппл

May 31, 2017

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

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

PS. Перейдя в мир андроида я думал Xiaomi нагло тырит внешний вид айфонов, но зайдя на сайт https://mymeizu.ru, понял, что Сяоми просто зайчики.

Логирование

May 30, 2017

У нас часто сервисные утилиты пишут в базу свои логи примерно так, чтобы их легко через морду было посмотреть:

  Open3.popen2e(cmd + " 2>&1") { |i, oe, t|
    oe.each{ |line| add_log_line(line.strip) }
  }

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

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

UPDATE: Выкинул отдельный поток, оставил только отправку логов пакетом не чаще раза в 3 секунды. Работает также быстро. Не люблю треды, еще Кнут говаривал, что мультипоточное программирование - от лукавого.

Линейка Off

May 29, 2017

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

Вот статистика:

Проекты против рутины

May 26, 2017

Один из рисков всяких аджайлов - это превращения деятельности в рутину. Человеку нужны яркие победы, а я сомневаюсь, что кто-то празднует в кабаке то, что велосити спринта номер 28 больше на 5% спринта 27. Всякие гибкие штуки - очень круто и вообще единственный вариант вести IT-проекты, но они одни не вытянут историю.

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

Bring Your Whole Life

May 25, 2017

Когда появились ноутбуки, смартфоны, планшеты в корпоративном мире возникла новая страшилка - BYOD (Bring your own device), жесточайшее нарушение периметра, доступ к корпоративной тайне с не пойми чего и прочее, и прочее.

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

От всего не убережешься, но базовый набор безопасности, который в идеале должен быть всегда (даже для личных целей) хорошо описан в книге Remote: Office Not Required от наших дорогих Дэвида и Джейсона:

  • На всех компьютерах должно применяться шифрование данных на жестких дисках.
  • Автоматический вход в систему должен быть отключен, выход из «спящего» режима — по паролю.
  • Включите безопасный режим на всех сайтах, которые вы посещаете, особенно в случае критически важных сервисов вроде Gmail.
  • Во всех смартфонах и планшетах используйте код блокировки, кроме того, у вас должна быть возможность удалить все их данные дистанционно.
  • Для всех посещаемых вами сайтов используйте уникальные, достаточно длинные пароли и храните их в специальной программе.
  • В случае Gmail включите двухфакторную авторизацию.

Такие дела.

Граница между администрированием и девопсом

May 24, 2017

Когда вы заходите на сервер по ssh - вы занимаетесь администрированием, когда не заходите - девопсом. Девопс это про создание и настройку технологий, а не конкретные инструкции и команды.

Цифра против материи

May 23, 2017

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

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

Цифровые товары гораздо ближе по смыслу к сфере идей, а деньги (при том что это резанная бумага) ближе к материальному миру. Когда у Васи есть идея и он поделится ей со Станиславом, у них у каждого будет по идее. Когда у Васи есть фильм на компьютере и он поделится с другом, то у каждого будет фильм. А когда у Васи есть 1000 рублей и он даст их приятелю. Увы. У него уже не будет этой тысячи. Но останутся фильм и идея.