Chernov sharit
СтатистикаПишу о процессах в разработке с разных уровней: команда, департамент, компания. Посты примерно раз в неделю. Автор - @vanadium23.
- Последний пост
- 24 июн.
- Последнее чтение
- 04:23
- Постов за неделю
- 0
- Всего постов
- 39
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии (по похожим)
- В каталоге с
- 13 авг.
- 1/24сутки в ленте
- —
- 1/48двое суток
- —
- 1/72трое суток
- —
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
Мне тут друг подсказали, что можно попросить придумать название для канала. Напиши ваши варианты в комментарии, а завтра может будет стандартно серьёзный пост.
Ладно, пока суть до дело про больше писать. С друзьями где можно уже поделился, но лучший мой контент за последнее время - это заметка про вкусы: https://chernov.wiki/forge/20260506103149 enjoy
Впервые за долгое время у меня случилось продолжительное обучение. Не вот эти вот курсы на выходные или онлайн-занятие. А полноценное зубодробительное нечто, которое я откладывал с 2022 года, под названием "Школа системного менеджмента". Учился я там не один, а вместе с Олей, которая взяла и вытащила меня рассказать об этом сейчас на CODEFEST '16. Я думаю, что это в отместку за запись подкаста в офлайне. В рамках этого обучения есть много разного, но если выделять основное — то это философско-абстрактная штука под названием онтология, и тут даже важнее указать, что скорее её верхняя часть. На самом верхнем уровне там что-то совсем невнятное типа объекта, отношения. А вот в рамках системного мышления идут уже более бытовые вещи: система, роли, методы, работы. И чтобы со всем этим разобраться, мы решили поделиться списком материалов, с которых можно начать выправлять бытовое понимание в системно-инженерное. Книги: 1. Thinking in Systems: A Primer, Donella Meadows 2. Great Mental Models, Volume 3 by Shane Parrish 3. Системное мышление by Levenchuk 4. Месяц под звёздами фантазии (больше ТРИЗ, но системного там много) 5. Thinking in Bets, Annie Duke Статьи: 1. https://blas.com/the-systems-bible/ 2. https://cutlefish.substack.com/p/tbm-387-lenses 3. https://cutlefish.substack.com/p/20-things-ive-learned-as-a-systems 4. https://telegra.ph/Back-engineering-nastolnyj-igry-Spikizi-CHast-1-01-26 — на примере настолок и casual loop diagrams 5. https://www.craiglarman.com/wiki/index.php?title=Larman%27s_Laws_of_Organizational_Behavior — всякие эвристики организаций 6. https://habr.com/ru/companies/custis/articles/678436/ 7. https://systemsworld.club/t/topic/3471 — пример поиска целевой 8. https://systemsworld.club/t/topic/3427/2 — поиск целевой для блога 9. https://untools.co/systems-thinking/#tools 10. https://systemsworld.club/t/chto-takoe-rol/2764 — что такое роль? 11. https://systemsworld.club/t/myshlenie-o-lyudyah-prezhde-vsego-oni-ispolniteli-rolej/2425 — мышление о людях как об исполнителях ролей P.s. ну начну я чаще писать, начну. @chernov_sharit
Исследования баз данных У меня есть безумное желание знать всё. Не уметь, не делать, но знать точно. И вот одно из них связано с исследованием баз. На работе чаще всего проповедую подход boring technology, а вот в homelab можно оторваться. И даже когда что-то делаешь, всё равно потом отказываешься в пользу PostgreSQL или SQLite или ClickHouse. Такой вот швейцарский нож, который зарекомендовал себя на все случаи жизни. Есть даже более радикальные мысли о том, что что достаточно PostgreSQL или вот такое же мнение на русском. И это правда так по простой причине: большинство компаний не упираются в пределы вертикального масштабирования данной базы. А если упираются, то скорее всего разработчики сделали что-то не так. На такую радикальную мысль стоит давать кучу оговорок, но лень. Но меня что-то понесло, написать хотелось о другом — о лучшем инструменте и техническом блоге по тестированию баз данных: https://jepsen.io/. Выход каждой статьи в блоге для меня праздник, потому что ребята закапываются в эмуляцию потери пакетов, случайных задержек, битых файлов, и это всё в собственных коробках. А также радостно возвращают это всё разработчикам, которые чинят довольно оперативно. Последние три исследования: 1. https://jepsen.io/analyses/mariadb-galera-cluster-12.1.2 — потери записи при сетевых сбоях. 2. https://jepsen.io/analyses/nats-2.12.1 — потеря записей, если файлы побились на меньшинстве нод из кворума. 3. https://jepsen.io/analyses/tigerbeetle-0.16.11 — база, которая позиционировалась под финансовые данные, могла не запуститься на bitflip или не имела механизма для замены сломанной ноды. Тут стоит отметить, что почти все баги уже успели поправить. Специально статьи пишу в формате одного предложения, потому что просто откройте ссылочки и посмотрите на картинки. Написание баз — тяжело, создание тестовых сценариев и верификация баз — ещё тяжелее. А если вам берут и приносят это в виде технического теста и доступных картинок, то грех не потратить время. @chernov_sharit
Путь до CTO и обратно А у меня тут кое-что новое — первый подкаст, который мы записали в студии. Всем сердцем люблю, когда меня аккуратно выталкивают из зоны комфорта: позвала Ваню в подкаст, а он предложил сделать это очно, в студии. "А почему бы и не да?" — подумала я В гостях — Иван Чернов: успел побывать CTO, потом осознанно вернулся в разработку, сейчас системный архитектор в Островок! и автор телеграм-канала Chernov sharit Что обсудили? 📣 Быстрый подъем: от Junior до CTO. С каким сложностями сталкивался при быстром росте? 📣 Разные грани CTO: от стартапа до корпорации 📣 Почему CTO может вернуться в разработку: честность с собой 📣 Культура компании: кто за неё отвечает и как её строить так, чтобы в сложные моменты команда не рассыпалась 📣 "Бунтарь в IT" или "вредные советы" от Вани: 👉 Критиковать публично, хвалить лично 👉 Усиливать конфликты, а не сглаживать 👉 Делать то, что считаешь правильным (иногда это похоже на саботаж) 👉 Открыто говорить руководителю, что хочешь его подсидеть Конечно, это не инструкция к применению, а повод посмотреть на привычные управленческие догмы под другим углом Смотрите и слушайте интервью на удобных платформах: 📺 YouTube 📺 VK Видео 🎙 Аудио подкаст 🎵 Яндекс подкаст 📺 Rutube Получился живой и откровенный разговор о быстрых взлётах, падениях, культуре и честности с собой в карьере P.S. Подписывайтесь на YouTube / VK / Яндекс Музыку, чтобы не пропускать новые выпуски #слонцеликом @smestavcareer
62. AI в Энтерпрайзе. Генерировать код с нуля может каждый, а внедрить ИИ в настоящий большой проект — получается не у всех. Обсуждаем AI-инструменты для кодинга, внедрение AI-ассистентов в энтерпрайзе и практическое использование Claude Code и аналогов в продакшене. Реальные кейсы, анализ затрат, безопасность данных и трансформация процессов разработки через AI-агентов. В гостях Иван Чернов https://t.me/chernov\_sharit -- Авторский тгк Саши @toxic_enterprise Альтер эго Саши @sashimi_pub -- 🎧 Слушать в Apple Podcasts | Spotify | Яндекс | браузер
Ничего не пишу, потому что по подкастам хожу. Вот держите первый и второй.
### Disposable software Мне тут понравился термин Karpathy о коде на выброс / disposable software. А ещё, конечно, чем больше читаешь каналов типа "LLM под капотом", тем больше думаешь, что и не надо, наверное, думать о том, что за код там, если он проходит golden dataset. Так что теперь не надо делать proof of concept или MVP. За вас возьмут и сделают их 10, 20, 50 — вопрос только в бюджете на эти эксперименты. Как следствие, проблема смещается в то, как отобрать из этих решений лучшее. Anthropic (и другие лаборатории) сейчас раз за разом наливают всё больше вычислений и получают результаты (https://www.anthropic.com/engineering/building-c-compiler). Только для задач реального мира (вендинговый аппарат, вырастить помидор) они выглядят не такими классными, как для софта со строго верифицированным поведением. Получается, что web-разработка дошла до лучших инженерных практик — моделирование. Смешно это потому, что сам софт — это модель (а потом и симулякр) того, что должно произойти в физическом мире. Напомню, что уже 30 лет нам пропагандируют agile, суть которого сводится к отсутствию upfront-планирования. Вместо того чтобы хорошо подумать, мы берём и делаем как получится, а дальше смотрим уже на использование людьми. Всё это людям напоминает эволюцию, и вот даже начали это подмечать: https://ilyabirman.ru/meanwhile/all/design-vs-evolution/ или вот так https://arxiv.org/abs/2601.14096. Выводы такие: 1. _видимо_, переходите в продактов 2. или на худой конец научитесь наконец-то в TDD (частность) и QA (не как manual testing, а как ISO 25010) @chernov_sharit
Оно же с телефона
### ClaudeBox Честно, это снова скопированный подход из статьи: https://blog.emilburzo.com/2026/01/running-claude-code-dangerously-safely/. А ещё если дальше залезать, то это следствие увеличение времени автономной работы агентов через разные подходы: как улучшение моделей, так и улучшение самих подходов. Одно из них - это преобразование claude code в общего агента-оркестратора и выпуск SKILLs, как более адекватной замены MCP. Поэтому показываю, как поднять изолированный ‘ClaudeBox’ (VM/VPS), чтобы безопасно запускать claude --dangerously-skip-permissions и получить больше автономности через плагины/loops. В cloud init в знакомом облаке пихаем установку claude code: runcmd: - curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - # для ubuntu забираем посвежее - apt install nodejs docker - usermod -aG docker claude - npm install -g @anthropic-ai/claude-code --no-audit Дальше нам нужно прокачать сам claude code, потому что базовый хоть и хорош, но мы хотим повысить автономность. Делается это с помощью трёх плагинов: 1. https://github.com/gmickel/gmickel-claude-marketplace 2. https://quint.codes/ 3. ralph loop, (но можно из первого плагина сделать ralph init) Следующий вопрос: токены и подписки. Выгоднее сейчас брать подписки (исследование https://she-llac.com/claude-limits), причём после адаптации хочется только 200$, но в режиме экспериментов проще закупить через openrouter.ai. Для того, чтобы оно подхватилось в виртуалке в .bashrc закидываем: export ANTHROPIC_BASE_URL="https://openrouter.ai/api" export ANTHROPIC_AUTH_TOKEN="$OPENROUTER_API_KEY" export ANTHROPIC_API_KEY="" # Important: Must be explicitly empty После всего этого у нас есть VPS/виртуалка, где мы можем начать наше программирование магической командой: /flow-next:interview "сделай мне персонального ассистента" Эта команда задаст где-то 30-40 вопросов, чтобы детализировать а что такое персональный ассистент. Дальше создаст epic, нарежет его на набор M тасок и будет ждать команды это всё начать (если не сделали Ralph). Что-то получилось уже много, поэтому пару вопросов и скрин под конец. > Почему не докер / дев контейнер? VPS, которая стоит в ДЦ, больше изолирована от того окружения, где есть что-то важное. Виртуалку проще уничтножить / пересоздать. > Как стянуть данные? Не давайте, пожалуйста, доступа до своих аккаунтов. Git - это распределённая система контроля версий, поэтому git clone claude@box:/home/claude/project/ :)
С трёх разных источников пришла статья: https://openai.com/index/scaling-postgresql/ И так как пока свои мысли не пишутся (пишутся, но не в канал), то переключимся в link блог и разберём статьи. Мысль примерно такая: это статья одновременно и успех Postgresql, Azure и инвесторов, и провал openAI. Что нам говорят про постгрес: - поставьте pgBouncer - оптимизируйте запросы - снимайте запросы с мастера на реплики - реплики в больших количествах ставьте в каскад (привет сеть на мастере) Так в чём провал? Судя по цифрам, стоит это всё очень дорого и живёт, пока выдали столько инвестиций. А что классно? Ну, теперь мы знаем что если у вас 800 миллионов пользователей, то шарды вам не нужны и можете смело брать на system design interview один кластер Postgresql. #postgresql
Очередной advent of code Уже через три дня начнётся очередной Advent of Code. Если вы не знаете, что это — такой ежедневный новогодний календарь, где каждый день даётся паззл для разработчиков. Главное отличие от leetcode / codewars / you name it в том, что тебе надо решить задачу ровно один раз — для предоставленных тебе тестовых данных. А там дальше как хотите, так и решайте: через Excel, с помощью редактора уровней Baba Is You и так далее. Если хотите подробнее, с примерами, есть отчёты за 2024, 2023 и 2022 год. В этом году Advent претерпел два больших изменения: задач станет 12 вместо 25, и глобального лидерборда больше не будет. Остаются приватные лидерборды, а удаление глобального стало решением в связи с автоматизацией решений через LLM. Оба решения правильные и сделаны почти вовремя, всё‑таки Эрик уже 10 лет старается с этим праздником для нас, и если это поможет и дальше получать эмоции сообществу, то так и надо. Традиционно к первым пяти задачам я выбираю какой-то альтернативный язык, так как уровень задач ещё позволяет потупить в инструмент, а не в сложность алгоритма. Уже были Clojure и Rust, в этом году выбор пал на C. И с этим связана история: я сидел и смотрел отличные доклады с PythonNN — что вы не знали про строки и внутреннее устройство сборки мусора в 3.14. Со строками ОЧЕНЬ много смешного, вот прямо советую глянуть всем, а на сборщике мусора встрял из‑за текущих знаний и решил их подтянуть. Быстрый поиск в интернете дал курс learn memory in C, и он мне что-то так понравился. Суть курса в том, что мы пишем CPython 0.1 Sneklang, и для него надо будет сделать Garbage Collector, так как это же лучший динамический язык™️. Пока идёшь к GC, напоминаешь себе, как работает C. Автору удалось зациклить это обучение так, что тебе одни и те же моменты сначала объясняют, потом дают использовать на уровне C, а потом делать самому (пример: объяснили память, объяснили указатели, делаешь свои stack frames для Sneklang), что принесло мне сейчас больше пользы, чем то, как это давали в Бауманке 13(?) лет назад. Чуть подробнее про курс расписал в wiki. Осталось теперь только подготовить шаблонный репозиторий с чтением и парсингом текстового ввода от Advent, и готов решать. А вы будете участвовать в этом году? Будете использовать copilots / coding agents для этого? @chernov_sharit #programming #learning
там в комментарии пришли накидывать, давайте ещё раз и короче: 2 ядра @ 4 гига за 2500 рублей/месяц за старое железо - это или жадность компании, или тупость бизнес модели. речь именно про VM'ки, про базы и S3 как-нибудь отдельно напишу.
А кто-то может ответить на вопрос, почему в российских облаках такие цены на виртуалки? Вот арендованный bare metal в Selectel с 4 ядра, 16 гигов и SSD на 480 Гб в рейде стоит 5000 рублей/месяц. Идём по популярным провайдерам и берём тоже самое, но уже вирутальное, а не физическое: 1. selectel - тоже самое железо, но виртуальное - 10_000 2. yandex.cloud - 9072 рубля, но там ещё тебе интернет затарифицируют 3. vk.cloud - 11 932 рубля Хотел написать, что зарубежные провайдеры не такие жадные, но в целом разница там где-то в 20% (аналогичный setup в Digital Ocean). AWS открывать даже не буду, статей о том что мы съехали с облака и сократили косты всё больше и больше: - https://digitalsociety.coop/posts/migrating-to-hetzner-cloud/ - https://www.fastmail.com/blog/why-we-use-our-own-hardware/ - https://world.hey.com/dhh/it-s-five-grand-a-day-to-miss-our-s3-exit-b8293563 Железо, только железо, и видимо как-то надо организовывать это дома. #homelab
Нужен коллективный разум. Занимаюсь over engineering'ом моего homelab. Под этим я понимаю. что сознательно тащу какие-то технологии под пром и """масштабирование""" туда куда не надо. Что у меня есть: 1. домашний сервачок с 8 ядрами и 32 гигами оперативки (OS на nvme, + зеркальный RAID на X Tb) 2. арендованный bare metal в Selectel - 4 ядра, 16 гигов, ssd 3. wireguard mesh поверх этого, куда входят ноут, телефон, и два первых пунктах Что было и остаётся: 1. traefik + portainer + свой DNS + gitea + postgresql (master selectel, failover home), ansibl'ом всё катается. * что-то заселфхостить = написать копипастную ansible role, поменять image, выдать креды к базе и поехали * что-то потестить с docker-compose = заходишь в portainer, указываешь репу и оно делает docker compose up (кстати, реально рекомендую как GUI к docker compose up без приседаний, но нюанс в том что portainer'у надо докер сокет выдать) Что хочется: 1. CI/CD поверх куба, чтобы пушнул в репу и оно роботает 2. бекапы, бекапы, бекапы 3. выдавать семье доступы к всяким immich Что получилось потестить: 1. делаем kvm поверх baremetal 2. магия iptables, чтобы подсеть kvm'ок могла ходить в wireguard mesh напрямую и NAT для интернета 3. flux для CD 4. gitea action runner для CI и вот оно вроде всё работает, но хочется про сеть поговорить - может VM'ки просто должны быть поверх изначального wireguard mesh и тогда все приседания с iptables не нужны? —- Это новая рубрика #homelab, пока она будет регулярной.
### Всего два типа СТО IT-индустрия за последние энное количество лет последовательно наслаивалась. Раньше было круто быть просто разработчиком, разработчиков становилось больше, началось разделение труда, а также создание конференций и сообществ вокруг. Примерно то же самое произошло с тимлидами. Разделение труда здесь всё ещё в процессе, потому что должность Engineering Manager начала добавляться не так уж давно (https://t.me/the_rebel_cto/36). При этом всё это как-то перестало быть вокруг IT — всё больше докладов про то, что «вам заново надо будет учиться». Основной линейкой здесь выступает количество людей в подчинении. И это плохая линейка, потому что большое количество людей не означает важность сделанных изменений. Скорее всего, её вывели как прокси-метрику к бюджету. И здесь хорошо перейти к теме CTO. С CTO разделение идёт уже сейчас. Мы все внезапно стали CTO, а значит, пора разбираться, кто есть кто. И большинство книг просто взяли и скопировали методички тимлидов, решив, что так и надо. Вот пример (https://vadimkravcenko.com/technical-manager-guide/): открываем оглавление, и там по порядку — что делает, когда 10, когда 100, когда 1000. Это хорошая книжка, она показывает переменные, но, как по мне, не отвечает на главный вопрос, о чём хорошо было сказано здесь (https://t.me/chernov_sharit/482). Моё предложение по делению такое: CTO бывают двух типов: 1. Функциональные — ничем не отличаются от тимлидов; их нанимают не для того, чтобы толкать бизнес вперёд, а чтобы всё просто работало. 2. Здесь, надеюсь, стало ясно, почему совпали методички. 3. И второй вопрос к рынку: зачем вы теперь создаёте 20 таких вакансий «СТО»? 1. Собственники / предприниматели — те, кто напрямую может говорить с инвесторами, не столько защищая бюджет, сколько предпринимая. 2. И тут расстройство, потому что таких наёмных CTO фактически нет :( 3. На самом деле, только это и есть CTO. Кстати, мы тут ещё поговорили с CTO Ситидрайва (@tobelead) про инциденты в каршерингах: https://doubleivan.mave.digital/ep-37 @chernov_sharit
29 октября std.Io залили в master (да, да, тот самый православный). О том, что это плохо писал полтора месяца назад: https://t.me/chernov_sharit/739 Теперь вот принесли статью с примерами по случаю этого события: https://andrewkelley.me/post/zig-new-async-io-text-version.html Скопирую оттуда седьмой пример: fn juicyMain(gpa: Allocator, io: Io) !void { var a = io.async(doWork, .{ gpa, io, "hard" }); defer if (a.cancel(io)) |s| gpa.free(s) else |_| {}; var b = io.async(doWork, .{ gpa, io, "on an excuse not to drink Spezi" }); defer if (b.cancel(io)) |s| gpa.free(s) else |_| {}; const a_string = try a.await(io); const b_string = try b.await(io); std.debug.print("finished {s}\n", .{a_string}); std.debug.print("finished {s}\n", .{b_string}); } fn doWork(gpa: Allocator, io: Io, flavor_text: []const u8) ![]u8 { const copied_string = try gpa.dupe(u8, flavor_text); std.debug.print("working {s}\n", .{copied_string}); io.sleep(.fromSeconds(1), .awake) catch {}; return copied_string; } Как вы думаете в какой последовательности что будет выведено не подглядывая? Копировать ответ не собираюсь. С чем я согласен: с тем, что надо понимать зависимости между продьюсером данных и тем, кто их вычитывает. Так же как и то, что IO должно быть передано как параметр, но вот выносить реализацию за пределы stdlib и не иметь реализацию в ней - это перебор. Заглядывая в будущее: Zig - следующий шаг сделать монаду Reader.
#ДваИвана #системныйанализ 🎙Два Ивана продолжают экспедицию по ИТ-направлениям: на горизонте системный анализ! Вместе с системным аналитиком Лизой Миротиной (компания Oggetto) поговорили о том, как профессия устроена изнутри — от образования до практики, от корпоративных традиций до применения SA в неожиданных сферах. В этом выпуске: 📌Чем отличается обучение системному анализу в вузе от реальной работы 📌Какие методы помогают принимать решения и почему это сложно 📌Почему нотации и схемы цикличны, зачем нужны аббревиатуры 📌Визуализация, чек-листы, бытовые SA-лайфхаки 📌Будущее системного анализа и документации Слушайте, где удобно, делитесь впечатлениями и ссылками! ✅Плеер в Telegram ✅Mave ✅Яндекс Музыка ✅YouTube ✅VK
без подписи
без подписи