Борода бывшего программиста
183 subscribers
45 photos
2 files
111 links
Сейчас рук. отдела в Озоне, ранее директор по разработке idp.zyfra.com
leotsarev.ru
t.me/leotsarev
Много ссылок на статьи и нытья
Download Telegram
https://opensource.microsoft.com/blog/2025/01/23/documentdb-open-source-announcement/

Microsoft зарелизила в опенсорс ЧАСТЬ своей реализации т.н. Azure Cosmos DB for Mongo (не путать с другими Azure Cosmos DB. Несмотря на то, что это все заявляется как API к одной БД, на самом деле это разные БД).

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

Этот плагин используется закрытой реализацией в Microsoft Azure, а также уже в опенсорсном клоне Монги FerretDB.

Обратите внимание, как компании выбирают, что опенсорсить. Периметр компании покидает технология, которая не является ноу-хау для компании (как ударная позиционируется полностью пропиеритарная CosmosDB), а компонент, призванный отвечать на вопрос «а монга у вас есть), причем такой кусок, который не позволяет сам по себе собрать готовое решение.
Сдавал давеча анкету в службу безопасности.
Укажите, мол своих родственников и друзей, работающих в компании.
Вот так и проблематизируют: кого из приятелей и бывших коллег записать в друзья?
https://job.ozon.ru/vacancy/117557545

Не могу обещать, что в Озон Тех круто (я собственно не разобрался еще), но в одной из моих команд есть вакансия. Буду рад видеть кого-то из тех, с кем работал.

Реферальной премии в мои команды мне естественно не полагается, но рекомендовать могу, поэтому пишите мне наверное
Требования на загрузку логотипа есть? Есть! Загружается? Загружается.

Требования на то, чтобы он показывался именно загруженный логотип, а не дефолтный? Нет. Что вы от нас хотите?

(Основано на реальных событиях)
Борода бывшего программиста pinned «https://job.ozon.ru/vacancy/117557545 Не могу обещать, что в Озон Тех круто (я собственно не разобрался еще), но в одной из моих команд есть вакансия. Буду рад видеть кого-то из тех, с кем работал. Реферальной премии в мои команды мне естественно не полагается…»
Сегодня получил письмо о том, что проекту ХХХ надо срочно выдать архитектора от автоматического робота ресурсного планирования.

Ответил примерно следующее. Коллеги, вероятно есть некоторая ошибка в генерации этого письма.

1. Я знаю ситуацию на этом проекте, архитектор там не нужен
2. За выдачу архитекторов этому проекту отвечаю не я, а Максим К
3. Проект давно закрыт
4. Это моя личная почта, а не рабочая
5. Я уволился три месяца назад
https://news.ycombinator.com/item?id=43332830

Компилятор Typescript перепишут на Go.
Вообще это крупнейшее поражение для Typescript в частности и фронтенда вообще. Написать компилятор на самом себе это знак взрослости языка; языки, которые не умеют это делать, не считают полноценными.

Фактически язык расписывается в том, что он недостаточно производителен.
Понятно, JIT компилируемые языки меряют себя по тому, что называется steady-state performance, по разогретому состоянию, а компилятору казалось бы важен быстрый старт (на самом деле нет, перформанс постоянно висящего в памяти language server важнее).

Имеем ли мы дело с давно чаемым многими закатом JS (виртуальной машины)? Ну и славно, хехе.

P.S. В комментариях на hacker news горят фанаты дотнета, что выбрали не C#. Топ 100 аниме предательств, на этот раз совершенное автором языка!
Ты можешь сколько угодно бесится на своих пользователей.
Но зачем, если можно сделать так?
(Хроники пет-проекта)
Попросил ChatGPT придумать тесткейсы для функции, которая ставит слова русского языка в корректное число в зависимости от. Показывает как и сильные, так и слабые стороны ChatGPT.

    [InlineData(1, "0 персонажей")]
[InlineData(1, "1 персонаж")]
[InlineData(2, "2 персонажа")]
[InlineData(5, "5 персонажей")]
[InlineData(11, "11 персонажей")]
[InlineData(21, "21 персонаж")]
[InlineData(22, "22 персонажа")]
[InlineData(25, "25 персонажей")]
[InlineData(101, "101 персонаж")]
[InlineData(102, "102 персонажа")]
[InlineData(111, "111 персонажей")]
[InlineData(121, "121 персонаж")]
[InlineData(122, "122 персонажа")]
[InlineData(-1, "-1 персонаж")]
[InlineData(-2, "-2 персонажа")]
[InlineData(-5, "-5 персонажей")]
[InlineData(-11, "-11 персонажей")]
[InlineData(-21, "-21 персонаж")]
[InlineData(-22, "-22 персонажа")]
[InlineData(-25, "-25 персонажей")]
https://t.me/work_and_scream/10

Юра Пирогов спрашивает про логи и их зажимание. Я считаю, что фильтровать, выкидывать и сжимать логи плохой подход.
Прежде всего в силу того, что приучает программиста про логи не думать. На самом деле все это сжатие хитрое, приколы, «приложение не может подконнектится к базе уже 5 раз, и это теперь стал warning» должен делать тот, кто понимает семантику происходящего — т.е. разраб приложения.

На уровне снаружи приложения мы должны оценить бюджет наблюдаемости, предъявить его приложению в качестве НФТ. Возможно, мы можем поставить приложение в рамки и при нарушении бюджета начать дропать логи (собственно, некоторые PaaS платформы так и делают), но это нештатная ситуация, на такое приложение должен быть выставлен алерт.

Альтернативный взгляд на проблему (в частности о преимуществах как можно более позднего анализа логов) можно почитать тут https://opentelemetry.io/docs/concepts/sampling/
Типовой проектный комитет (если говорить на ЦИПовском). Ну или техком, если говорить по Озоновски.
https://status.yandex.cloud/ru/incidents/1129?retpath=%2Fru%2Freports#report

Итак, из отчета Яндекса мы выяснили:

1. Под подключением к двух независимым источникам энергоснабжения имеется ввиду «два кабеля до 1 одной подстанции 220 кВ». Впрочем, это на самом деле норма (ПО НАСТОЯЩЕМУ независимых источников энергоснабжения в ЕЭС России не бывает), и такая конфигурация лучше, чем 2 подключения к разным подстанциям в городе.

2. В отчете совершенно игнорируется заявленное в рекламных статьях наличие аварийного дизель-генератора в ДЦ как третьего источника питания.

3. ИТ Яндекс.Облака молодцы, и план хороший.
Когда видишь, что в приложении Озона тебе показываются увеличенные сроки доставки, а сегодня с утра тебе звонила техподдержка
Хотелось бы прорекламировать git absorb
Он не нативный, но хорошо работающий
https://github.com/tummychow/git-absorb

Грубо говоря — у нас есть PR, в нем 5 коммитов смысловых.
Нам нужно после ревью поправить кучу файлов минорно, например код стиль.

Хорошо было бы, если бы в истории эти все изменения были бы в нужных коммитах.

Стейджим изменения (git add), делаем git absorb. Получаем много маленьких коммитов с названием !fixup commit1, !fixup commit2

Дальше git rebase --autosquash --interactive master и проверяем что все правильно разлетелось.

Ну или сразу
git absorb --and-rebase
Интересный прикол:
ChatGPT хорошо отвечает на вопросы про разные аспекты .NET, кроме новых.
В частности, он ничего не знает про MapStaticAssets().
Хотя ему доступны в интернете статьи, и ему можно попросить прочесть и учесть конкретную статью, если статей не было до даты обучения (окт 2023) — он «понимает» этот фунционал плохо.
https://techleadconf.ru/2025/abstracts/14254

Мой доклад взяли в программу TechLead Conf

Будет прикольно, если увижу в зале знакомые лица.
Лайк, репост