- Приготовил овсяную кашу и греческий салат на завтрак.
- Продлил больничный жене.
- Обошёл три ПВЗ, забрал заказы (подарки на НГ закупать надо заранее).
- Собрал мусор для переработки, отвёз его в пункт раздельного сбора.
- Позвонил маме, сказал чтобы отменила доставку из аптеки и купил всё самовывозом (сэкономил 1300₽). Себе и жене тоже прикупил кой-чво.
- Купил котам корм, к которому их приучили. Мираторг они вчера есть не стали, предпочли перебиться сухарями. Были очень недовольны.
- Зарешал вопросик с подарочным сертификатом на 50000₽, в срок действия которого я не укладывался - сделали мне его бессрочным.
- Сгонял на дачу, расчистил снег на въезде в гараж, у калитки, во дворе дорожки сделал. Надо бы электролопату уже купить, аккумуляторную, но отзывы у всего не очень.
- Навестил маму. Вчера наводил инвентаризацию в аптечке - выкидывал просрочку, прикидывал, чем не пользуемся, а что не успеем выпить, даже если будем пить каждый день. Итого 71 наименование, 60% - излишки. Собрал маме пакет всяких витаминчиков и прочего, что ей было нужно, но у нас бы отправилось в помойку. Помог убраться после неудачно упавшего стакана молока - постирал, высушил и повесил назад штору, отмыл пол под холодильником. Попили чаёк (привёз ей 100гр Чжень Шань Сяо Чжун, зашло), поиграли немного в Disco Elysium. Втягивается, нравится. Выкинул мусор.
И это только сегодня!
Суетные выходные.
- Приготовил овсяную кашу и греческий салат на завтрак.
- Продлил больничный жене.
- Обошёл три ПВЗ, забрал заказы (подарки на НГ закупать надо заранее).
- Собрал мусор для переработки, отвёз его в пункт раздельного сбора.
- Позвонил маме, сказал чтобы отменила доставку из аптеки и купил всё самовывозом (сэкономил 1300₽). Себе и жене тоже прикупил кой-чво.
- Купил котам корм, к которому их приучили. Мираторг они вчера есть не стали, предпочли перебиться сухарями. Были очень недовольны.
А что сейчас модно на #golang из веб-серверов/фреймворков, чтобы и jsonrpc поддерживался и orm/postgres с пулом соединени из коробки было и всё асинхронное до усрачки? Или там как и в питоне - либо django, либо собираешь всё из кирпичиков сам?
Хочу под настроение собрать наколенную замену куску своего питонячьего сервиса с работы и посравнивать производительность. Каждый раз (раз в 4 года прохожу этот квест) после этого упражнения я фиксю какую-то мелочь в питоньем коде, чтобы стало как в Golang, в итоге питоний код становится быстрее Go'шного.
А что сейчас модно на #golang из веб-серверов/фреймворков, чтобы и jsonrpc поддерживался и orm/postgres с пулом соединени из коробки было и всё асинхронное до усрачки? Или там как и в питоне - либо django, либо собираешь всё из кирпичиков сам?
Хочу под настроение собрать наколенную замену куску своего питонячьего сервиса с работы и посравнивать производительность. Каждый раз (раз в 4 года прохожу этот квест) после этого упражнения я фиксю какую-то мелочь в питоньем коде, чтобы стало как в Golang,...
Прибираюсь в запасах лекарств, которые в последнее время как-то расплодились. Решил начать с инвентаризации, чтобы было понятно, что где лежит, что докупать не надо, что наоборот стоит отвезти к маме, пока срок не закончился.
#ФедиГотовит внезапно зашёл пастеризованный чищенный картофель из пятёрочки. Стелешь на противень бумажку, спрыскиваешь маслом, вываливаешь всю упаковку, спрыскиваешь маслом ещё раз вместе с самой картохой, солишь.
Пихаем в духовку, 200 градусов сверху-снизу + обдув. Через 5-6 минут ворошим, через ещё пять минут - выключаем, снова ворошим, посыпаем сухим укропом. Даём постоять (в принципе сколько влезет, халявное тепло же). Потом всё это хрючим со сметанкой.
Ну то есть блюдо готовится вообще где-то в фоне. Я его просто попутно с нарезанием более каноничной картошки для борща замутил.
#ФедиГотовит внезапно зашёл пастеризованный чищенный картофель из пятёрочки. Стелешь на противень бумажку, спрыскиваешь маслом, вываливаешь всю упаковку, спрыскиваешь маслом ещё раз вместе с самой картохой, солишь.
Пихаем в духовку, 200 градусов сверху-снизу + обдув. Через 5-6 минут ворошим, через ещё пять минут - выключаем, снова ворошим, посыпаем сухим укропом. Даём постоять (в принципе сколько влезет, халявное тепло же). Потом всё это хрючим со сметанкой.
Открыли в банке пару аккредитивов для сделки. Написали заявления, менеджер приняла и сказала "вот сейчас в СБ отправим, они проверят всё ли в порядке".
СБ вернула с исправлениями в духе "не договор, а копия договора на бумажном носителе". Согласились, менеджер перепечатала. Отправили снова. СБ вернула с "юридически значимого договора" или что-то в таком духе. Согласились, перепечатали. СБ вернула не помню уже с чём, но тоже какие-то важные правки. Согласились, перепечатали. Серьёзный подход, теперь-то точно комар носа не подточит.
Сегодня по одному из аккредитивов продавцу деньги получить не удалось, так как не очень ясно как, но на одном из исправлений СБ "Москва" в заявлении превратилась в "Ярославль".
#ТакиеДела
Открыли в банке пару аккредитивов для сделки. Написали заявления, менеджер приняла и сказала "вот сейчас в СБ отправим, они проверят всё ли в порядке".
СБ вернула с исправлениями в духе "не договор, а копия договора на бумажном носителе". Согласились, менеджер перепечатала. Отправили снова. СБ вернула с "юридически значимого договора" или что-то в таком духе. Согласились, перепечатали. СБ вернула не помню уже с чём, но тоже какие-то важные правки. Согласились, перепечатали. Серьёзный подход, теперь-то...
Интересно, за сколько денег можно нанять человека, чтобы он, пусть и не с первого раза, сперва задавая вопросы, например, но раза с пятого хорошо самостоятельно мог сделать это за день:
- [ ] #Уборка
- [x] Помыть ванну
- [x] Почистить кошачьи лотки
- [ ] Прочистить ручной пылесос
- [ ] Пропылесосить кладовку за котами
- [ ] Пропылесосить вокруг кошачьего домика всё
- [ ] Пропылесосить штору
- [ ] Промыть штору
- [ ] Пропылесосить свой рабочий стол
- [ ] Пропылесосить ванну
- [ ] Пропылесосить туалет
- [ ] Запустить влажную уборку пылесосом
- [ ] Помыть раковину в туалете за собой
- [ ] Помыть раковины в ванной
- [ ] Разобрать лекарства
- [ ] На столе
- [ ] На кухне
- [ ] В гардеробной
- [ ] Помыть кухонный гарнитур
- [ ] Столешница
- [ ] Фасады
- [ ] Помыть стол на кухне
- [ ] Собрать опавшие листья в детской
- [ ] Разобрать бумаги в пакете на батарее (сканер -> шредер)
- [ ] Очистить шредер в пакет
- [ ] Разобрать чистый мусор для переработки из буферного контейнера на кухне
- [ ] Выкинуть мусор
- [ ] Досортировать остатки и отнести мусор для переработки в багажник
- [ ] Обойти квартиру в поисках вещей не на своих местах и перетаскать их на места
- [ ] Переложить вещи из стирки в сушилку
- [ ] Закинуть следующую порцию стираться
- [ ] Разобрать первую порцию по местам
- [ ] Разобрать и собрать посудомойку
- [ ] Найти зарядник для рабочих наушников
Интересно, за сколько денег можно нанять человека, чтобы он, пусть и не с первого раза, сперва задавая вопросы, например, но раза с пятого хорошо самостоятельно мог сделать это за день:
Товарищу, зарегистрировавшему домен в .tech (сейчас 500р у руцентра), сильно не повезло — стоимость продления у того же руцентра 22 килорубля.
Ещё один узнал, что стоимость покупки и стоимость продления отличаются. #лытдыбр#работа
Осознал удобный плюс самостоятельно подготавливаться к перформанс-ревью с помощью заметок. Обычно там фиксируются какие-то краткосрочные (зависит от периода между перформанс-ревью) достижения, о которых забываешь. А если всё это где-то у себя структурированно хранить, то при смене места работы обновлять резюме будет чуточку проще.
Опять же, резюме один хер писать придётся под конкретного работодателя. Но отфильтровать большой документ всё равно проще, чем с нуля по памяти накидать что-то складное.
Осознал удобный плюс самостоятельно подготавливаться к перформанс-ревью с помощью заметок. Обычно там фиксируются какие-то краткосрочные (зависит от периода между перформанс-ревью) достижения, о которых забываешь. А если всё это где-то у себя структурированно хранить, то при смене места работы обновлять резюме будет чуточку проще.
На работе не давал покоя один метод в сервисе, который работает не самым идеальным способом, делался на коленке, но всё же ускорял систему по сравнению с тем, что было. По сути он 3-4 раза дёргал один муторный #SQL запрос в цикле и это было лучше, чем 3-4 параллельных HTTP-запроса. SQL-запрос был и правда муторным, с кучей логики, поэтому переписывать его год назад не начинал, просто переиспользовал как есть.
Недавно обвешал свой сервис метриками и заметил, что #ORM, курва, порождает сильно (3...4) * (1...3) SQL-запроса, то есть в худшем случае 12. Жопка!
Сел, часа полтора проковырялся с оконными функциями, а потом оказалось, что мне вполне можно было обойтись простым советским SELECT DISTINCT ON. Ещё за полчаса превратил его в ORM (плохому танцору всегда мешает, ага). И вуаля, всё работает в один SQL-запрос.
Ещё за час пересобрал нагрузочное тестирование на яндекс-танком на локалхосте. Вроде и нелепо, зато можно никуда не деплоиться, а умеючи, разграничив всё taskset'ами и позакрывав лишнее - результаты близки к достоверным. Ну и прям большой плюс - изоляция тестируемого/изменяемого участка системы, а то у нас любят пострелять из JMeter на тестовых слоях через VPN и кучу проксей, в сервис, который крутится в оркестровщике, который может то на хорошую ноду закинуть, то на хреновничающую - короч волатильности хватает. Не, инфраструктуру так тестить (особенно всякие мультицоды) - хорошо и правильно, но это другое.
И вскрылось любопытное. Старый код неплохо работает под нагрузкой в 100 #RPS, но дальше деградирует дичайше:
300 RPS: avg 7.1ms, p99: 41ms
350 RPS: avg 161ms, p99: 297ms
400 RPS: avg 153ms, p99: 805ms, 0.29% HTTP/500 из-за таймаута ожидания коннекта из пула соединений.
В понедельник скорее всего без вопросов пройдёт ревью, постреляю ещё в тестовых окружениях нагрузочным, так-то прикольно.
После предыдущей пачки оптимизаций, эта чёрная пятница прошла без каких-либо проблем, в прошлую - нас прям система мониторинга завалила алертами, то коннектов к #БД много, то CPU троттлится, то пятисотим. И это при том, что я ещё и подрезал ресурсы. А в этот раз нагрузка на CPU выше 20% не поднималась.
Надо будет ещё сходить до фронтендеров, поузнавать что из наших ответов мы можем вырезать, сделать им новую API-шку, избавиться от `select x.*, y.*, z.* from` в основном запросе, в теории сокращение ширины вытягиваемой из БД строки + сокращение payload ответов может ещё небольшой буст к задержкам дать. Дальше только на #Rust переписывать, кек.
На работе не давал покоя один метод в сервисе, который работает не самым идеальным способом, делался на коленке, но всё же ускорял систему по сравнению с тем, что было. По сути он 3-4 раза дёргал один муторный #SQL запрос в цикле и это было лучше, чем 3-4 параллельных HTTP-запроса. SQL-запрос был и правда муторным, с кучей логики, поэтому переписывать его год назад не начинал, просто переиспользовал как есть.
Задумался тут, есть ли простой способ ограничить capabilities софта в flatpak?
Хочу попробовать целиком обрезать Obsidian'у доступ в сеть и к файловой системе. В теории с этим должен справиться selinux/apparmor.
Усложняем: простой и понятный способ. То есть чтобы за час можно было вычитать код и принять решение, доверяю я ему или нет. Selinux и apparmor я доверяю (на слуху с десятилетия).
@strizhechenko, вероятно, оно там и будет.
А эти домены на случай опечаток.