Борода бывшего программиста
183 subscribers
45 photos
2 files
110 links
Сейчас рук. отдела в Озоне, ранее директор по разработке idp.zyfra.com
leotsarev.ru
t.me/leotsarev
Много ссылок на статьи и нытья
Download Telegram
Хотелось бы прорекламировать 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

Будет прикольно, если увижу в зале знакомые лица.
Лайк, репост
https://t.me/cosmic_learning/313

Я в свое время решил, что «могу задать глупый вопрос на любом совещании с любыми начальниками» сделаю своей фишкой.
Впрочем в другую сторону это тоже важно: руководителю не бояться выглядеть глупо или показаться не знающим, задав вопрос.
В Фортисе у меня был бессмертный разговор:
Я: на эту тему созовем совещание и решим
Сергей К (бодро).: отличная идея, молодцы
Я: и тебя позовем
Сергей К (ошарашенно): меня? Меня не надо.

С тех пор он повторялся в сотнях вариаций, и я сотню раз повторял: меня? Меня не надо.
Очень прошу всех подчиненных не смешивать статус и оправдания.
Скажи мне точно и короткой, какой статус.
Потом, если я спрошу, объясни причины сдвига.
И только потом, если я наеду, настанет время оправдываться. Не надо тратить время всех на оправдания, если они не нужны!
Даир прислал ссылку на дебаггер регэкспов для Свифта.
Сначала я ужаснулся (потому что это две вредные вещи в комбинации, дебаггер и регэксы), но потом увидел, что в свифте сделан для регэкспов приличный DSL, что мою основную претензию к оным снимает.
Зато при таком DSL, похоже, не возможна ahead of time компиляция регэкспов как в дотнете.
За то, умеют ли хорошие программисты в текст, давно написали за нас основатели 37signals/Basecamp
https://basecamp.com/gettingreal/08.6-wordsmiths
«Оказалось, что ЛЛМ уверенно разговаривают на уровне менеджера среднего звена. И мы почему-то решили, что это значит, что ЛЛМ разумны и обладают личностью, вместо того, чтобы предположить, что менеджеры среднего звена ей не обладают»
Одним из условий моего выхода в ЦИП была договоренность, что этой хуйней с микрооптимизациями и зажимом копеек на тулинг программистам мы заниматься не будем.
https://selix.net/notes/dont-be-frupid
:-)
Даже и смешно вспоминать об этом через года
Если при бедственном финансовом положении компании и задержках зарплаты высокий руководитель получает повышение оклада это кое-что говорит о его щепетильности и циничности, но это может быть нужно. Компания не выживет без хороших руководителей, и иногда нужны именно циничные.

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

https://sponsr.ru/ashmanov

Я тоже, честно говоря, не верю в полный развод. У кого есть инсайды?
https://hacker-laws.com/
Для важных переговоров
Я не боюсь человека, который знает тысячу способов положить прод. Я боюсь человека, который положил прод одним способом тысячу раз
Пишу заметки с techleadconf

Очень крутая в докладе Павла Лакосникова из Авито система определения критичности сбоев.

Есть пользовательский сценарий (прямо CJM с шагами). Размечены метрики: как нам автоматически вычислить, работает этот шаг CJM или нет. Дальше мы знаем по трейсам от каких сервисов зависит это шаг.
И инцидент это сбой именно шага CJM (не произвольный Алерт) и виновный сервис именно самый нижний сервис в цепочке зависимостей.
Расскажите про причины этого инцидента?
Если кратко, то не фартануло
https://youtu.be/9-IWMbJXoLM?si=IqVg1a3XDIRxvGUy

Простите, что ссылка на вражеский Ютуб. Давно пытаюсь объяснить всем, что everything is a file — это плохая, провальная идея. Ее провалу должны учить на курсах дизайна API: если что-то можно запихнуть в какую-то абстракцию, это не значит, что нужно.
Важно, чтобы эта абстракция была полезна семантически.