16:35

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

===== Про работу =====

У меня есть работа. На работе у меня есть виртуальный сервер, на котором я когда-то запустил Dash, при помощи которого отобразил график. Красиво получилось. И вот уже 3 года, как dash неотрывно сопровождает меня и мою рабочую карьеру.

Я ноут сменил.
Когда я еще только начал работать на текущей должности, мне в веденье были даны несколько PowerBi отчетов. Один из них сказал "кря" и в какой-то момент начал упираться в количество оперативки и отказался обновляться. Я подумал, что это же отлично. Пойду к айтишникам, запрошу ноут помощнее и буду приближать человеческое бессмертие, путём подсчета белков прямо на нём.
Но вот уж нет ни PowerBi, ни того отчета. Отчет, к слову, я быстро обновил и ему перестало требоваться такое количество оперативки. И не так давно я сменил ноут. Дали мне крошечный, маленький, у которого батареи хватает не на 2 часа, а на весь рабочий день, при желании (если не работать).
Я уверен, что писал всё это.

Так вот. Есть виртуальный сервер и есть мой ноут. На виртуальном работает рабочий веб сервер, у меня на ноуте - dev копия.
Ну... Раньше оно так работало. Сейчас тоже, но как говорил Ржевский, есть нюанс.

У меня есть важная задача. Я считаю процент производственного отхода.
Вошло i м2 одного материала, j второго, l третьего, в разных местах оно было добавлено и выкинуто. Сколько стоило то, что было выкинуто? Берем математику, кофе, говорим хмхмхмммммм и вот у нас файлик для входящих данных, сложная функция, которая делает математику и постгрес таблички со стоимостями. Что выкинули делим на стоимость входящих материалов - вот тебе и отход.
Да? Да. Примерно два года, в одну каску, у меня ушло на то, чтобы привести это в то состояние, что есть сейчас.

И вот, на днях я сделал новую страничку к отчету, которая показывает данные в новом, несомненно нужном, формате.
Я сделал её у себя и перекинул файл со страницей в рабочий сервер. А потом посчитал месяц, проверил, что всё хорошо и написал письмо, дескать, коллеги, всё посчитано, а кроме того, есть новый отчетик, вот ссылка.
А потом отправил, а потом внимательно посмотрел.
Ссылка, что я отправил была вида хттп://127.0.0.1:8001/... и т.д. И это раз. Я открыл отчет в рабочем сервере и увидел странное. Столбик в 3 миллиона, был рядом со столбиком в миллион. и тот, что 1 миллион был чуть крупнее.
А потом, началась череда открытий.
На сервере питон 3.11, на ноуте 3.13. На сервере dash 2.8.0, на ноуте - 2.16.0 и самое страшное - пандас на сервере 1.5, на ноуте 2.3.
Оказалось, чтобы поставить пандас 1.5 (35 мегабайт) нужно скачать Visual Studio что-то там toolkit и какой-то SDK на 6 (шесть!) гигов.
Потом я вспомнил, что если сделать select col from t, то вернется цифра, если select sum(col) from t, то вернутое цифрой уже не будет даже внутри постгреса (select round(sum(col),2) from t работать не будет) нужно добавлять sum(col)::numeric или float и всё это будет разно и по разному отображаться и сочетаться, например, с делением на 1,1.
А потом оказалось, что psycopg2 мудит и может изменить формат данных в зависимости от того, что ты используешь DictCursor или RealDictCursor. А потом panas, который своей жизнью живет.

Короче, будущий я, если снова с этим столкнешься, то как оно там раньше - не так важно. Просто перед созданием объекта с графиками сделай result_year['waste'] = result_year['waste'].astype(object). А то, что цифра с точкой хранится как float64, которое цифра с точкой - так это обман, потому что... Потому что пошел ты нахрен, вот почему.

Последнее я понял уже за полночь и спал в тот раз очень сладко =)

@темы: Я и urbanknight-style fuck up, Я и как я вJOBываю

Комментарии
17.05.2025 в 10:02

Прод и дев завернуть в докер чтобы гарантировать одинаковое окружение?
18.05.2025 в 19:31

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