← All posts tagged погроммирование

agr

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

только потом вспоминаю, что того, кто видит, нету вовсе.. и не знаю, хорошо это или нет, и что такое хорошо — тоже не знаю. только вереницы исходов и причин в обе стороны.

agr

внезапно для самого себя, за последние четыре недели решены три задачи, поставленные на год. целый год ушёл у меня на то, чтобы перестроиться от кровавого энтерпрайза к стартапу. вновь начал откладывать копеечку после массивного выжигания копилки в 2017-2018 гг.

32-я неделя этого года, к счастью, завершилась. недавно имел удовольствие побывать возле психиатрической больницы №6. там парк и много скамеек, на которых зависают местные и всякие маргиналы. на побережье речки затухал выжженный солнцем борщевик. мне не понравилась трапезная в Александро-Невской Лавре: хлеб продаётся отдельно, трапезная — отдельно, кофе на 20 раз дороже (70 руб.), чем возле Смоленского кладбища.

agr

прoдал старый тленoвo, вытащил данные из 2 жёстких дискoв, избавился oт них и oстался дичайше дoвoлен!

сии действия вытащили из сoзнания какую-тo хренoвину, спрoвoцирoвали выбрoс веществ в мoзге, чтo спoдвиглo меня к сoвершению рывка на рабoте.

этoгo oказалoсь малo: принял и запилил небoльшoй фич-реквест в сайте.

надo каждую неделю искать пути избавления oт хлама и фoрмирoвать oкружение, прoвoцируя себя к изменениям..

agr

я перестал пилить компилятор, затолкал костылей и перешёл к реализации примеров..

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

agr

выкатил фичу пo сайту в прoдакшн.
теперь пауза в разрабoтке и пассивный тест длинoю в месяц.

oсвoбoдившийся ресурс вкладываю в андрoид.
на прoшлoй неделе узнал ещё два спoсoба, как делать не надo.
пoслушал местных экспертoв и решил не прoдoлжать эмуляцию системных тикoв для хoждения пo стейт-машине.
в результате alarm manager и job scheduler так же идут лесoм пo разным причинам.

пoслушаю же себя и заюзаю, накoнец, Service + Handler архитектурный паттерн.

agr

будем называть вещи своими именами: опенсорс и другие проекты вне работы — это хобби до тех пор, пока не приносит денег.

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

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

установка с нуля — 3 часа времени + удар по RAM. с 6 гигами собирается, выделяешь докеру меньше — сборка падает. ну и со временем удар по месту на жёстком диске. ну, понятно, что локально всё собирается на ура!

решил настроить CI. не подумал, что под капотом будет тот же докер, только не локально. поэтому сразу же напоролся на те же грабли. пришлось разобраться.

посмотрел, что пишет GHC: в модуле, на котором сборка падает, выделений памяти аж на 10 ГБ.

перечитал код: единственное, что могло вызвать подозрений — это самописные SQL запросы.

некоторые из них были слишком длинные, поэтому для удобства я разбил их на строки. помню, колупался долго с тем, что не мог завести терминирование строк бэкслэшами. плюнул, и сделал через (<>).

много позже я столкнулся с другими странностями, и, как оказалось, включенные расширения в код иногда могли влиять на компиляцию. так и тут, @qnikst подсказал, что CPP мог влиять. А CPP у меня включен глобально для всего проекта в cabal файле.

переделал запросы, и отлегло. проект даже стал собираться быстрее. да, CI завёлся, билды с него встали отлично.

в докере нужда отпала. задепрекейтил самописную прослойку для компиляции под разные оси, раз уж CI работает.

agr

подвожу итоги эксперимента длиною в пять дней:

— первые 3 дня всё шло по плану.
— 4й день осложнился сильной головной болью.
— ни одна задача из двух не была сделана.
— обе перенеслись на 5й день.
— 1я задача 4го дня была заняла часов 20. хотя можно было потратить и 6, головная боль наложила свой отпечаток на ход её выполнения.
— задача 5го дня всё ещё в процессе выполнения. будет исполнена сегодня. и её исполнение закрывает полностью фичу с приоритетом 1.

итого:
приоритет 1 — планируется к закрытию.
приоритет 2 — не приступал.
приоритет 3 — 2 задачи не выполнены. 50% завершено.
приоритет 4 — не приступал.

agr

есть 4 задачи:
— 2 с первым приоритетом, 2 со вторым.
— каждая задача состоит из от 1 до N подзадач.
— одна пара задач с разными приоритетами относится к работе, другая пара задач — к личным проектам.
— в день можно делать 2 подзадачи. они нарочно так составлены.

значит, пусть нечётные — относятся к первому приоритету, чётные — ко второму. тогда:
— N1 и N3 подзадачи делаются сначала. N2 и N4 — затем.
— N2 после N1, N4 после N3.

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

условно:
— патчить компилятор — сложнее запиливания нанофич для сайта: компилятор подождёт..
— пока пожар горит, тушим и не смотрим никуда кроме, не отвлекаемся.

agr

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

agr

набрали пачку фич в бэклог и пилим, как проклятые..

ещё под шумок обновил стэк, с ним сайт перестал собираться (8.4.4). пришлось и его апгрейдить до 8.6.5.

подвёл итоги месяца: начал бодро, а под конец акценты все сместились в сторону работы.. стоило съездить в офис, зарядился и сбился..

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

значит, сделаю ещё одну попытку..

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

agr

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

переквалификация в технического писателя.

компилятор пока отложил в сторону, тут разброд и шатания, HSE потихоньку забрасывают в пользу GHC API. надо обождать, присмотреться..

agr

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

теперь надо проверить гипотезу, потрогать haskell-names и убедиться, что всё это не так страшно, как кажется поначалу.

agr

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

agr

поломал front, не успев довести до ума. браузер закэшировал старый файл, а я и не заметил.

зато добавил поддержку GHC 8.6 (когда 8.8 на носу уже) в Fay и описал, как с хаками и прибаутками его компилять новым кабалом. мне ещё в феврале белый парень из Мексики зарепортил проблему, но дозрел до неё я лишь сейчас.

подвёл итоги за прошедшую неделю и апрель: в этот раз слабенько..
кодомарафон в Москве подкосил меня на неделю, конечно, но это нормально, можно двигаться дальше..