Многие разработчики привыкли везде ставить if-проверки, даже для условий, гарантированных кодом. Зачем проверять то, что не может нарушиться? Такие проверки создают шум в коде и мусор в релизе. Assert решает эту проблему: документирует допущения и исчезает из финальной сборки. В статье покажу все преимущества assert'ов и предостерегу от подводных камней их использования. Читать далее
Привет! Я Никита, инженер-инсталлятор в Selectel. Представьте ситуацию: вы нашли уязвимость и понимаете, что ее можно воспроизвести. Цель — помочь владельцу сервиса закрыть дыру быстро и безопасно. Но до контакта важно остановиться и взвешенно проанализировать собственные действия. Чтобы вам было чуть проще сориентироваться «на месте», собрали ключевые советы и рекомендации под катом. Под кат →
Многие команды работают с кластерами Kubernetes побольше нашего. В них больше узлов, больше подов, больше ingress и так далее. По большинству размерностей нас кто-нибудь, да побеждает.Но есть одна размерность, по которой, как мы подозреваем, мы почти на вершине: это пространства имён. Я…
В общем-то и целом, мой предыдущий эмулятор ZX Spectrum, написанный на go, работал. Показывал нужное (или очень близко к нужному) и давал чувство приближенности к программистам. Однако у него были очень фундаментальные проблемы, связанные исключительно с языком разработки. Ну по…
Как разработать источник отрицательного напряжения? Легко, это делается из классического Buck конвертера!Стандартное решение, которое может пригодиться всем, кто хоть раз сталкивался с разработкой DC/DC источников питания или столкнулся сейчас. Читать далее
Это началось со статьи "Алгебраические типы данных на самом деле не такие страшные". Мы знаем о типах-суммах и типах-произведениях. Но задумывались ли вы когда-нибудь о том, откуда они получили такие имена, и как вообще были открыты они и их свойства? Я провел последнюю неделю в кроличьей норе истории, и я просто обязан поделиться тем, что я нашёл. Читать далее
Как систематизировать работу с техническим долгомТехдолг растёт, пока его никто не контролирует. Мы решили это так: выделили отдельную доску в Jira, разделили процесс на Backlog → To Discuss → Ready for Development → В работе, проводим регулярный груминг, оцениваем и приоритизируем задачи, сделали
Одна из фундаментальных проблем при создании эффективных моделей машинного обучения – определение необходимого и достаточного количества данных для их обучения. Слишком мало данных – модель будет неточной, слишком много – неоправданные затраты времени и ресурсов на сбор и…
Проблема раковых опухолей в том, что их существует тысячи видов. Однако, у каждого вида рака оказался собственный микробиом – специфический набор бактерий, которые влияют на возникновение, распространение и реакцию опухолей на лечение. И если подбирать лечение с учетом этой бактериальной среды, то можно добиться лучших показателей для выздоровления. Читать далее
Самые интересные новости финансов и технологий в России и мире за неделю: российским операторам запретили рассылать смс-коды для Telegram, Аяза Шабутдинова посадили на 7 лет, первый штраф за рекламу в Инстаграме, рекордная капитализация Nvidia на $5 трлн, реорганизация OpenAI в коммерческую компанию, а также предзаказ домашнего робота Neo за $20к. Читать далее