Путевые заметки из Боготы

Впервые за десять дней пребывания в Боготе встретил наркоманов после десяти вечера. Надо отметить, что в не рекомендуемые к посещению кварталы не совался, тусовался по большей части в своём илитном районе. Всё-таки, это не миф. Работали допоздна, разошлись по домам. Идти тут от офиса три минуты всего. А вот.

Путевые заметки из Боготы

Возвращались из офиса вечером. К нам подвалил американский забулдыга, начал втирать про Трампа, про то какой он крутой. Мы сразу отрезали ему пути отступления, сказав, что русские. Он в ответ начал уходить в крутое пике со словами, что несмотря на настроения Трампа надрать нам задницу, он против этого и респектует нам, русским. После ещё пары фраз про переменчивые настроения, после хождения вокруг да около выдал, наконец, что нужно денег на билет в Нью-Йорк, ну хотя бы несколько тысяч песо. ХА-ХА. Монетки сунув под нос ему и помахав перед ним карточкой "no cash, only coins and credit cards", он откланялся, изменился в лице и побрёл дальше в поисках улова.
Tags:

дзен погромирования


  1. Всё не успеть сделать вовремя. Зачастую требования ко времени реализации любого рода активности необоснованы.

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

  3. Правило трёх гвоздей: справедливо для продуктовой разработки и поддержки. Спросили раз - повесь на первый гвоздь. Ещё раз - на второй. Другой раз - на третий. Дошли в эскалациях до потолка возможностей - надо делать.

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

  5. Не допускать совещаний более, чем на час в день. Больше часа - контрпродуктивно, идёт в ущерб другим активностям.

  6. Если руткоз-анализ ситуации занимает более пяти минут - вешать на гвоздь. В часе всего двенадцать пятиминуток.

  7. Чем ближе к окончанию проекта, тем дороже стоимость решения проблемы.

  8. Передавать знания надо документацией и кодом, которые не стыдно передать и которые способен понять тот самый психопат. Ну или абстрактный индус. Или конкретный джуниор. Джуниор-индус - это вилы.

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

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

  11. О ресурсе. Его никогда не хватает. Если и выделяют новых людей в команду, то не обладающих требуемыми качествами. Их, качества, ещё надо воспитать в людях. Не бояться отпускать воспитанных кадров после окончания проекта или истощения ресурсного плана.

  12. Уменьшать энтропию, описывая процессы. Не описан процесс - нужно задокументировать. Не поставлен процесс - поставить и описать.

Трубошат

Одни источники утверждают о 69 домах другие - о 87, но факт: на В.О. рвёт трубы вот уже вторую неделю подряд, теперь и мы сидим без отопления и горячей воды. Проезжал мимо, видел облако пара. Сразу вспомнился 2014-й, зверь из бездны пробудился.

Неделя до отлёта

Предстоит много работы, но будут и выходные, и свободное время.
В планах (чтоб не потерялось):

  1. Картахена

  2. гора Монсеррат

  3. водопады

  4. национальный парк Чингаса

  5. долина Кокора

Buenos noches.
По ходу дела постараюсь не забросить бложик.

Парсер третий, часть одиннадцатая

Так получилось, что я сдался. Антибот победил. Целевой ресурс ушёл в глухую оборону. Результат оказался плачевным.

  • Запиливание самопального кукистора не помогло, целевой ресурс всё равно меня банит.
  • Целевой ресурс запоминает всё, даже таймстемпы и сверяет их из кук с четырьмя хостами. Уровень паранойи зашкаливает.
  • Перелез на фантомжс. Думал, что буду постранично обходить, а всю логику обсчёта страниц наследую из парсера, в котором всё по уму. Ага, разбежался.
  • Целевой ресурс по параметрам GET запроса научился определять, когда началась сессия скроллинга, каждый следующий запрос должен содержать значение текущего таймпстемпа, иначе вернётся первая страница. Так и этого ещё мало.
  • Целевой ресурс каждый раз отдаёт разное число объектов. Опереться на статические оффсеты нельзя.
  • Отказался от самописного парсера. Запилил JS-скрипт для фантома, который бесконечно скроллит страницу до тех пор, пока не удовлетворяется условие выхода из него. Тогда формируется JSON, который подхватывает Aeson на ура.
  • Все работы по миграционной туле для админки завершены.
  • Осталось воткнуть логику для конверсии (N бесплатных просмотров, потом e-mail гони). И можно релизиться.

Неожиданное добавление в архитектуру фантома стало неприятной неожиданностью. Но тут уже решает скорость. Непозволительно долго всё это пилится.

Парсер третий, часть десятая

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

  • Возник сайд-проект "длиною в два месяца".
  • Попутно я понял, что часть кода парсера второго надо копипастить в третий. И провёл ряд работ по отделению парсинга от бота.
  • Вырисовываемая структура напомнила API для полноценного ETL-framework.
  • Закладку про ETL оставил, но сначала надо было закончить сайд-проект. Не всё сразу.
  • К концу года сайд-проект следовало финализировать, переходя от прототипа к работающей бизнес-функции по получению инфы благодаря боту и парсеру.
  • И тут открытие: оказывается, другой целевой ресурс держался в лапах всё той же фирмы (об этом я узнаю вскоре). Всё, что работало декабрь, январь и февраль и шлифовалось до продакшна - умерло. Антибот!!
  • Впоследствии я взял паузу и переключил силы на основную работу, возникла потребность в компании отправить меня в многочисленные командировки в Швейцарию.
  • И вот недавно возобновил работу.
  • За это время компаньон напилил ДО ЖУТИ контента для сайд-проекта.
  • Под этот контент надо по-быстрому воткнуть миграционный тул. Там всё прозрачно, на вход архив, принимаем, распаковываем, меняем кодировку с CP1251 на UTF8, парсим контент, грузим в предзаготовленные таблицы.
  • Ну и в довершение - эмуляция браузера - война с антиботом.

На выходе информационно-рекомендательный ресурс с платными фичами для своей ЦА. Кусок ETL фреймворка, под который нужен движок. Причём тут уже башню рвёт. Последние три-четыре года занимаюсь ETL задачами и вижу, как процесс решения той или иной задачи (т.е. написания кода с использованием ETL Framework) можно ускорить многократно. Т.е. движок может быть просто огненным. Но надо держать себя в руках и пустить-таки ресурс, GO LIVE.