
Пришло время поговорить о главной функции сборщика мусора в CPython. В предыдущих частях (1, 2, 3) мы говорили о поколениях, инкрементальной и полной сборке мусора — но все они в итоге вызывают главную функцию, которая и реализует основной алгоритм циклического сборщика мусора — находит и разрывает циклы у объектов, которые уже вышли из использования.
В первой статье на тему устройства сборщика мусора я написал, что история началась, когда я попробовал исправить ошибку в CPython. И вот, в четвёртой статье, я наконец‑то добрался до функции, в которой была ошибка.
Если вам интересно, давайте посмотрим, как работает «сердце» сборщика мусора.
Читать далее
Начиная писать данную статью, меня не покидало ощущение, что я открываю “Ящик пандоры”. Холивар. Так как ну кто признается, что он плохой проектный менеджер? Кто скажет - я плохо управляю проектами? Ну я же… (дальше сами подставьте необходимый спич:))
Тем не менее, в рамках цикла статей по управлению рисками в GameDev данную область просто необходимо рассмотреть.
Четкое понимание целей, целевого состояния проекта, продукта, позволяет лучше понять присущие риски. Эффективное управление игровым проектом и присущими рисками, дает конкурентное преимущество тому, кто знает, как управлять и эффективно этим пользуется.
Мы все часто слышали: “Нужно задержаться”, “Нужно выйти в субботу”, “Вся команда пашет, а ты домой собрался”, “У нас дедлайн, нужно сделать и все”, “It is the Crunch time, baby!” и т.д. в подобном ключе. Я сам, бывало, работал и по выходным, и до утра. Иногда это было дико интересно, а иногда у тебя был просто выбор - либо поработать как просят, либо уволиться.
Давайте разберемся, почему так происходит?
Читать далее
20 января была зафиксирована атака на цепочку поставок, затронувшая индийскую компанию MicroWorld Technologies, разработчика антивирусного продукта eScan. Представители компании позднее сами сообщили изданию BleepingComputer о том, что злоумышленники взломали один из региональных серверов и подменили там файл обновления антивируса, который был доставлен клиентам. Атака была обнаружена «снаружи» — специалистами из компании Morphisec, которые проинформировали производителя через день после начала атаки.
Специалисты «Лаборатории Касперского» опубликовали подробный анализ использованного в атаке вредоносного кода. По их оценке, это достаточно необычный вектор атаки. Мало того что атаки на цепочку поставок в принципе происходят редко, еще реже фиксируются случаи компрометации антивирусного программного обеспечения. При этом атака была тщательно подготовлена: не только был взломан сервер обновления, но вредоносный код был специально разработан так, чтобы наиболее эффективно работать с учетом особенностей компрометируемого легитимного ПО.
Читать далее
Как компания с «покупкой в 1 клик» кинула меня на 90 000 ₽. Мой урок для IT-фрилансеров
Я в разработке с 2011, и по молодости и наивности накопил целую коллекцию серьёзных факапов. Каждому из которых я, как ни странно, благодарен — без них не было бы опыта.
Читать далее
«Данные закончились». «Архитектура исчерпана». «LLM упёрлись в потолок».
Звучит умно. Проблема? Это одномерное мышление.
Когда говорят «данные закончились» — имеют в виду текстовые данные для supervised pre-training. Это правда. Но это одна ось из шести, по которым модели становятся умнее.
Inference-time compute (o1/o3), algorithmic efficiency (Mamba, MoE), мультимодальность, tool use, RL и self-play — пять осей, о которых забывают, когда хоронят AI.
В 2020 году консенсус был: GPT-3 — потолок. В 2022: нужны триллионы токенов для каждого улучшения. В 2023: reasoning невозможен без symbolic AI.
Все эти «потолки» были пробиты.
Даю ментальную модель, которая позволит не попадаться на ложные прогнозы о «смерти AI» — и задавать правильные вопросы, когда кто-то уверенно предсказывает будущее.
Читать далее
Результаты исследования, в рамках которого моделировалось распределение денег в обществе и определялся основной фактор, ведущий к богатству.
Почему одним все, другим почти ничего?
Алессандро Плючино и его коллеги из Университета Катании получили ответ, создав компьютерную модель таланта и того, как человек им пользуется. На выходе модель показывает роль случая в этом процессе. Моделирование дало то же распределение богатства, что и в реальном мире. Плюс, еще раз подтвердилось, что самые богатые люди — далеко не самые одаренные. Они просто самые везучие.
Читать далееOpen Source Analysis: зачем нужен и как его проводить
В мире современной разработки приложений программное обеспечение с открытым исходным кодом (open source) стало неотъемлемой частью практически любого приложения. Open source библиотеки, фреймворки и компоненты ускоряют разработку, снижают затраты и способствуют инновациям. Но при этом существует серьёзная проблема: каждая зависимость — это не только ускорение разработки, но и дополнительные риски. В этой статье я постараюсь разобрать, что такое анализ открытого исходного кода (Open Source Analysis, или OSA), зачем его необходимо проводить, как он выполняется и как выглядит на практике.
Почему же open source — это одновременно благо и риск?
По разным исследованиям, от 70 до 90% кода в современных приложениях – это open source компоненты. Обычный сервис может тянуть за собой в проект сотни транзитивных зависимостей, о существовании которых разработчик может иногда даже не подозревать.
Примечание: транзитивная зависимость – это косвенная зависимость, пакет или библиотека, на которую ПО зависит косвенно через другую зависимость, это «зависимость от зависимости».
И в этом моменте у нас уже появляются проблемы. А именно:
Читать далее
Закономерности социального развития известны тысячи лет. Рецепты — не секрет. Но ни одна цивилизация не смогла их последовательно применить. Жадность, глупость, злая воля — это не объяснение, это пересказ проблемы другими словами.
Я начинал с поиска того, кто мешает. Пришёл к другому: сложные общества сами порождают механизм, который одновременно обеспечивает их устойчивость и блокирует развитие. Без заговора. Без злого умысла. Без координации. Как он устроен, почему его нельзя просто отключить и что меняется прямо сейчас — об этом статья.
Кто виноват?
Обычно обезьяны решают головоломки с удовольствием, но получив за это изюм, начинают ошибаться. Когда школьникам дают деньги за хорошие оценки, их интерес к учебе исчезает. Интересно, что и взрослые ведут себя так же. Когда программистам платят за каждую закрытую задачу, производительность команды падает примерно на 20%. Возможно, есть другой вид мотивации, когда само выполнение задачи служит вознаграждением?
Что ж, попробуем в этом разобраться.
Меня зовут Костя Дубровин. Я веду канал про книги.
РазобратьсяЯ активно использую на проекте Kafka Connect Framework и в частности Kafka JDBC Sink Connector для быстрого сохранения данных из Kafka Topic в БД PostgresSQL. Для большинства задач достаточно написать простую JSON-конфигурацию и все стабильно и быстро работает из коробки. Нет необходимости в написании собственного кода. Однако в нетиповых ситуациях расширяемость Kafka Connect тоже помогает - можно переопределить и написать один из компонентов.
В конфигурации JDBC Sink Connector Task существует настройка dialect.name, которая отвечает за выбор диалекта для работы с конкретной БД. Как правило, в 99% случаев используется один из уже реализованных для популярных БД диалектов, как например в моем случае PostgresSqlDatabaseDialect для PostgreSQL.
Может показаться, что вряд ли кому-то понадобится реализовывать свой диалект, если только не имеем дело с какой-то специфичной непопулярной БД. Однако на практике оказалось, что реализация своего диалекта даже для PostgreSQL может быть полезна для решения некоторых возникающих прикладных задач.
В данной статье я хочу показать идеи того, как реализация своего DatabaseDialect может помочь при имплементации нестандартных сценариев для вполне себе популярной БД Postgres, для которой существует PostgresSqlDatabaseDialect.
Читать далее
Всем привет! Когда речь заходит о разработке высоконагруженных систем, многие предлагают: «python, сделать проще и быстрее». Но есть проблема: Скорость разработки != скорость и качество работы сервиса. Когда мы делаем любой продукт, важны: Масштабируемость, стабильность работы под большой нагрузкой, предсказуемость поведения системы — особенно когда речь идет о тысячах одновременных пользователей, лентах новостей в реальном времени, уведомлениях и сложных связях между разными сущностями.
Именно поэтому и выбрана Java и Spring Boot как основа. Банки, сервисы видео, они работают именно на Java и Spring.
Одна из особенностей: строгая типизация, качественные инструменты для многопоточности, мощная экосистема и предсказуемое потребление памяти делают Java идеальным выбором для систем, где падение = полная потеря пользователей.
Попробую сделать цикл статей по разработке соцсети, которая будет объединять в себе ВК, пикабу, и иже с ними. Не ради «создания продукта который затмит всех и вся», а ради самого программирования.
Итак, начну, среда разработки Intellij Idea. О, точно, весь проект будет доступен из gitLab. Нам необходимо создать файлы с конфигурацией. можно сказать что их обычно 3. Да, я про application.yml. один из них общий, который так и называется: application.yml, и еще два: application-dev.yml и application-prod.yml
Читать далее
Когда на сервере появляется «прожорливый» процесс, который забирает все ядра и постепенно выдавливает память, хочется ограничить его быстро — но так, чтобы это было воспроизводимо и не держалось на магии.
В статье — практический разбор cgroups v2: как руками через cgroupfs создать группу, задать лимиты CPU/RAM и правильно запускать процессы без «окна без ограничений», а затем сделать то же самое через cg*-утилиты и systemd-run/slice. По дороге станет ясно, почему эти приёмы напрямую перекладываются на мир Docker и Kubernetes.
Как быстро пролетели шесть месяцев! Продолжаю рассказывать о том, как решил сделать пет-проект: НормЦРМ. Сам я ремесленник-одиночка и пользовался ограниченным набором инструментов для ведения дел: Google Таблицы, да Windows-заметки. Решил все эти данные свести воедино в рамках собственной црмки.
Я не разработчик, а проектировщик интерфейсов (UX/UI-дизайнер). Опыта в программировании совсем немного. Поэтому пет-проект был мне особенно интересен. Я уже двадцать лет готовлю проектную документацию для других — а в этот раз для себя.
Сейчас расскажу, что сделал по проекту за последние полгода, как мне в этом помогли ChatGPT и Codex, как изменился процесс работы и почему это поначалу было скучно и грустно — а теперь с каждым днём жизни проекта всё интереснее и веселее.
Читать далее
В какой-то момент почти каждая продуктовая IT-команда приходит к одной и той же мысли: «Нам нужно навести порядок в процессах».
Это обычно происходит не из-за моды на менеджмент, а из-за вполне конкретных ощущений:
Читать далее
Сегодня подпись — это движение шариковой ручкой, галочка на экране смартфона или шифрованная цифровая формула. Мы привыкли к ней настолько, что забыли: за этим простым жестом стоят тысячи лет эволюции человеческой потребности утверждать свою личность, власть, слово и собственность.
Задолго до появления бумаги и даже письма люди изобретали способы «отметить» себя: выводили тотемные знаки, прижимали к сырой глине ногти, резали пальцы для кровной клятвы, вырезали печати на камне и металле. Перстни-печатки, тамги кочевников, японские ханко, турецкие тугры, византийские хрисовулы — все они выполняли одну задачу: подтвердить подлинность и придать словам юридическую силу.
История печати — это история доверия. Того самого — между племенами, родами, государствами, людьми.
Давайте проследим, как человечество училось «подписываться» — от отпечатков пальцев до цифровых сертификатов.
Читать далееКак устроен конвейер
Сборочный конвейер большой софтверной компании обычно состоит из множества виртуальных машин, управляемых оркестраторами сборки. В качестве последних часто используются TeamCity и Jenkins. В этом случае на виртуальных сборочных машинах установлены соответствующие сборочные агенты.
При разработке программного обеспечения для Windows есть необходимость подписывать исполняемые модули (файлы EXE и DLL), а также инсталляционные пакеты MSI с использованием закрытого ключа.
Как всё было хорошо и просто раньше
До 2025 года такие закрытые ключи в комплекте с открытыми ключами и с сертификатами открытых ключей можно было приобрести у компании GlobalSign в виде отчуждаемого крипто-контейнера PFX в формате pkcs12, доступ к содержимому которого был защищён паролем.
Читать далее
Человеческий фактор, который все упускают
Когда Дарио Амодеи, генеральный директор Anthropic, сказал, что нас отделяет всего 6-12 месяцев от ИИ-систем, способных делать всё, что делают программисты, мне пришлось остановиться.
Это не "в будущем". Это практически следующий год.
В то же время Anthropic представила тесты производительности своей новой модели Claude Opus 4.5, показывающие значительные улучшения в кодировании, рассуждении и обработке сложных задач. Цифры выглядят действительно впечатляюще.
И я начал задаваться вопросом: действительно ли эти тесты означают, что разработка программного обеспечения вот-вот будет полностью автоматизирована? Позвольте мне разобрать, что, на мой взгляд, на самом деле происходит.
Читать далееВ рамках одного из обсуждении с чатах я предложил использовать функцию Merge для IAsyncEnumerable<T>, чтобы объединить результаты чтения однотипных данных из разных источников. Но когда попытался сделать пример оказалось что такой функции в System.Linq.Async нет. Есть аналог в Reactive Extensions, но тащить библиотеку для одного примера не захотел и решил написать сам.

Приветствую всех. В данной статье я расскажу, как заказал, отремонтировал и изучил новейшего голосового робота из Китая. Статья не является рекламой, я оцениваю от себя как независимый программист. Ввиду некоторой спешки, данная статья не будет покрывать все аспекты, мы лишь коротко пройдёмся по устройству данного робота. В дальнейшем, если понравится, выпущу продолжение о полной сборке такого же робота с нуля.
Читать далее
Всем известный Doom запускали на большом наборе различной техники и с различной степенью его портирования на выбранную платформу. Вот и я решил, что смогу что-нибудь куда-нибудь портировать.
Читать далее
Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Новый год — новый импульс. После январских каникул мы, соскучившись, возвращаемся к любимой Скале с обновленным взглядом и зарядом вдохновения (づ ◕‿◕ )づ
Читать тридцать седьмой выпуск
Как за один вечер собрать собственную систему транскрибации, если вам надоело платить за подписки и сливать записи конфиденциальных встреч в «облачные мозги»?
В этой статье разбираем Q-scribe — прагматичный open-source конвейер для маленькой команды. В основе: OpenAI Whisper для распознавания речи, Streamlit для быстрого интерфейса и Tailscale для безопасного удаленного доступа к вашей видеокарте RTX 4080 без «выхода» в открытый интернет.
Минимум кода, максимум контроля и нулевые затраты на облака. Идеально для тех, кому нужно быстро превращать видео встреч в текст, сохраняя данные на своем железе.
Читать далее
Anthropic опубликовали исследование, как AI влияет на скорость выполнения задач и на развитие навыков программирования.
В эксперименте участвовали 52 джуна. Все решали одну и ту же задачу с новой для них технологией. Половине разрешили пользоваться AI, половине — нет. После выполнения задачи все участники прошли итоговый тест на понимание темы.
Читать далее
Проект OpenClaw успел обрасти мифами. Одни отмахиваются: это якобы завайбкоженная поделка выходного дня, на которую был способен кто угодно — хоть вчерашний новичок. Напротив, другие уверяют, что опыт автора липкой жижей сочится буквально из каждой интеграции. Оба лагеря сходятся во мнении: второе переименование — это был явный перебор.
В реальности все по-своему заблуждаются. Питер Штайнбергер, программист-ветеран с большим стажем, действительно не читает, что улетает в проект, а OpenClaw — не третье, а пятое название ИИ-агента.
Старорежимный разработчик разрешил языковым моделям писать за него код и управлять его жизнью. Полтора десятка лет назад он считал мегабайты, сегодня расточительно запускает по десять агентов и расходует токены миллиардами. Что на подобное сподвигло?
Читать далее
ДИСКЛЕЙМЕР: Статья написана на основе интервью с Алексеем, основателем компании, которая производит термосумки и терморюкзаки с индукционным подогревом и датчиками контроля для доставки продуктов.
Я всю жизнь хотел быть конструктором, изобретателем. Но в 90-е технические специальности стали не востребованы — пошёл в экономический вуз на банковское дело. В банке не проработал ни дня. Пошёл работать на стройку. Проработал там лет семь. Нравилось создавать из ничего что-то новое своими руками.
Однажды в 2004 году ребята на стройке попросили сделать небольшую термосумку — собирались везти печень в контейнере. Я пошёл в магазин, купил материалы, пошёл в дом быта: сделайте мне термосумку. Термосумок тогда не было нигде. В Яндексе по запросу две картинки и пустой экран. Сделали простенькую, держала тепло пару часов.
Думаю: а может, это ещё кому-то надо? Дал объявление в бесплатную газету с тиражом 200 тысяч. Написал: такая-то сумочка для рабочих, дальнобойщиков, водителей. И мне начали звонить. Рабочие заводов, водители электричек, машинисты поездов. Это было моё первое маркетинговое исследование.
Читать далее
Если у нас преобладает умственная работа, то главным нашим ограничением является мыслетопливо - некий когнитивный ресурс, необходимый для принятия решений, мышления, произвольного удержания внимания, поддержания силы воли…
“Не хватило времени” - социально-приемлемая отмазка, которая позволяет не думать над истинными причинами. Но здесь, как и в известном анекдоте, есть нюанс…
Читать далее
Делюсь опытом разработки проекта, где потребовалось совместить Laravel и «Битрикс Управление Сайтом» в одной системе: подробно описал путь от настройки окружения и выбора инструментов до внедрения CI/CD и решения возникавших проблем.
Читать целиком, пепе
При проектировании раздела ЭОМ часто возникает необходимость на однолинейных схемах отображать дополнительное оборудование, в частности: счетчики учета, вольтметры, амперметры, независимые расцепители и т.д. В nanoCAD BIM Электро присутствует такая возможность. В этой статье мы разберем, как добавлять дополнительное оборудование в однолинейные схемы.
Добавить оборудование
Громкий и пафосный заголовок, согласен. Но в свой проект нужно верить, и я действительно верю и считаю, что приложение, которое я разрабатываю может «стрельнуть» - а именно вывести налоговое консультирование и сопровождение налоговых проверок на принципиально другой уровень.
Моя цель, дать бизнесу инструмент, который:
Читать далее
Сетевые инженеры и сотрудники ИБ в силу своих обязанностей должны минимизировать возможность проникновения в инфраструктуру. Основными способами является сегментация сети и ведение правил межсетевого экрана, минимизирующие возможные доступы. Выполняя эту задачу, можно делать все вручную. А можно использовать Firewall management (альтернативное название - NSPM - Network Security Policy Management) приложение, преимущества и варианты внедрения которого немного раскрываются в данной статье.
Если создание новых Access Control List (ACL) приводит к путанице и уже нет понимания, какое правило зачем было внесено, то пора наводить порядок, даже, скорее уже поздно. А если есть желание усилить меры ИБ или не хочется краснеть перед аудитором, то тут уже совсем сложно обойтись без какой-то документации. Но при этом очень хочется минимизировать время на ее формирование. Еще лучше вести документацию в одном месте и интегрировать информацию из нее в регулярные контроли.
Вопросы о том, есть ли у нас карта сети и какие информационные потоки у нас используются обычно вгоняют сетевого инженера в грусть. Хочется иметь готовый ответ на данный вопрос, так как все равно в итоге приходится тратить время на рассказ о том, как сейчас все устроено.
Открыты ли все сетевые правила для нашего резервного контура - совсем тяжелый и очень сложно проверяемый вопрос. Поэтому большинство сетевых инженеров ответят «Да», надеясь на удачу и на то, что резервный контур еще долго будет находиться в состоянии резерва. Понятно, что точно проверяет только тестирование, но желательно минимизировать потенциальное количество инцидентов до его организации и иметь возможность проверки доступности всех необходимых задокументированных потоков.
Читать далее
Ошибки в спецификациях, бесконечные правки чертежей, ручной ввод данных из CAD в учетную систему – знакомые боли? АО «Профсталь» прошло этот путь и нашло решение. Компания не просто автоматизировала рутину – она создала дружелюбную цифровую экосистему, где проектирование в nanoCAD и управление затратами в 1С стали единым безошибочным процессом. Результат, который говорит сам за себя: время расчетов сократилось в 2-3 раза, объем обрабатываемых заявок вырос вдвое, а продажи по проектам конструкторов увеличились более чем в два раза.
Из этой статьи вы узнаете, как «Профсталь» шаг за шагом выстроила интеграцию компонента «СПДС» Платформы nanoCAD и 1C: ERP через Microsoft SQL Server. От проектирования цифровых двойников сэндвич-панелей до автоматической выгрузки спецификаций – мы покажем технологическую цепочку, которая исключает ошибки и экономит сотни часов рабочего времени.
Это пример для руководителей и собственников строительного бизнеса, которые хотят сократить издержки, ускорить проектный цикл и повысить надежность смет, для ИТ-директоров и руководителей отделов автоматизации в строительстве, которые ищут реальные примеры интеграции CAD и ERP, и, конечно, для главных инженеров, проектировщиков и сметчиков, уставших от рутины и конфликта данных между отделами.
Узнать об опыте
Родители малышей постоянно фотографируют их проделки. Дети копируют наше поведение как обезьяны, поэтому наш младший тоже вскоре захотел щёлкать затвором. Обычно мы делаем снимки на телефон, но давать его будет не очень хорошей идеей: дети иногда роняют вещи. Что ещё хуже, иногда в телефоне включаются какие-то странные будильники и меняются настройки. Чтобы такого не происходило, я решил специально для младшего ребёнка купить камеру.
Очевидно, дети в таком возрасте не могут пользоваться всеми функциями зеркальных или даже компактных камер. К счастью, в мире много детей с интересом к фотографии, поэтому есть и рынок для дешёвых (в буквальном смысле) камер: в них не так много функций и наворотов, крепкий пластмассовый корпус, а низкая цена не позволяет расстроиться из-за поломки. Я поискал такую камеру на Taobao и остановился на той, которая показалась мне достаточно простой. Я не надеялся, что фотографии будут качественными, но хотя бы разрешение должно оказаться приемлемым.
Для включения камеры достаточно было нажать на кнопку. Однако дальше всё становилось сложнее: как и во многих китайских устройствах, производитель стремился запихнуть в камеру кучу функций, поэтому после загрузки открывалось меню, где одной из опций был режим камеры. Если бы у камеры был сенсорный экран, как у наших телефонов, то это не вызвало бы проблемы, но перемещаться по меню нужно было при помощи курсорных клавиш, а это оказалось слишком сложно для трёхлетки, живущего в нашем современном мире.
Поэтому я задумался: наверняка ведь есть способ пропустить меню и сразу перейти в режим камеры? Должно быть, внутри камеры находится какой-нибудь процессор ARM, и я не думаю, что разработчики заморочились с защитой кода. Достаточно считать его через JTAG, загрузить в Ghidra, найти нужный бит, изменить его, снова записать код во флэш-память, и всё.
Читать далее
Люди часто забывают или даже не задумываются о том, что многие обыденные вещи в окружающей нас сегодня действительности стали возможными лишь благодаря унификации технологического слоя, на котором эти вещи основаны. Существование бытовых приборов - микроволновок, телевизоров, стиральных машин, холодильников и компьютеров - было бы невозможно без повсеместного внедрения электричества, унификации напряжения в электрических сетях и унификации разъёмов розеток. Современная наука была бы невозможна без принятия единой математической нотации и одинаковых единиц измерения, а современный интернет - без повсеместного распространения компьютеров и унификации протокола обмена данными.
Одну из таких унификационных революций произвёл в середине XX века Малкольм Маклин - американский предприниматель, внедривший в индустрию грузоперевозок единый стандарт контейнеров. До контейнерной революции Маклина трюмы и палубы кораблей заполнялись товарами разной формы - доски, мешки, коробки и бочки с жидкостями загружались на борт вперемешку. Разная форма не позволяла заполнить доступный объём оптимальным способом. При необходимости довести товар от порта до места назначения требовалось перегрузить его в вагон поезда или кузов грузовика. Это всё было жутко долго и неудобно. Контейнеры изменили ситуацию.
Суть контейнерной революции состояла в абстракции процесса перевозки от перевозимого товара. Товары загружались в стандартизированные контейнеры определённой формы и объёма, а корабли, поезда и грузовики переделывались в платформы для перевозки этих самых стандартных контейнеров. Вся портовая и вокзальная инфраструктура была постепенно перестроена под массовое хранение, загрузку и разгрузку стандартизированных контейнеров. Благодаря этому процесс загрузки и выгрузки заметно ускорился, а после и вовсе автоматизировался.
В дальнейшем подобная контейнерная революция произошла в доставке программного обеспечения. Если прежде программистам приходилось строить свои самодельные системы для доставки кода приложений на сервер и его запуска, то названный в честь портовых грузчиков Docker позволил оборачивать любую программу в стандартизированный контейнер и запускать его на сервере с помощью автоматизированных средств развёртывания вроде Kubernetes.
Идея абстрагирования системы доставки от того, что именно доставляется, принесла человечеству огромную пользу. Но мы извлекли из стандартных физических контейнеров ещё далеко не всю пользу. В этом эссе я хочу поразмышлять, как с помощью контейнеров и тотальной майнкрафтизации мы можем выйти на следующий технологический уровень развития цивилизации. Внедрение контейнеров в перевозки заняло несколько десятилетий и потребовало полной перестройки людских умов. Полноценная контейнеризация нашей цивилизации потребует ещё больших усилий, но её результаты превзойдут все наши самые смелые мечты...
Читать далееСначала мы контролировали регистры, потом добавили проверку типов, затем — заимствование и владение. Каждый шаг забирал у нас "свободу" и давал надёжность. Проверка имён — следующий логический этап этой эволюции. Не мы выбираем, куда идти — логика развития языков ведёт нас туда.
Читать далее
После написания первого материала я получил достаточно много комментариев и отзывов. Это было очень приятно, спасибо! Обязательно попробую запустить там иксы и прогнать предложенными тестами. Вместе с этим в голове крутилась простая до безобразия мысль: а можно ли поставить туда Linux?
Как только начал изучать этот вопрос, показалось, что установить его будет очень просто. Но реальность преподнесла сюрпризы. Сегодня покажу, как получить работающий Linux на этой игровой консоли с PowerPC-процессором IBM Broadway.
Читать далее
Всем привет! Меня зовут Александр Васильцов, я руковожу отделом развития инфраструктуры в R-Style Softlab. В рамках своей работы я занимаюсь тестированием реестрового и импортозамещённого оборудования, которое используется на реальных рабочих местах специалистов.
Импортозамещённая техника за последние годы прочно вошла в нашу жизнь. Серверы, ПК, ноутбуки, сетевое оборудование – всё это появилось на рынке и стало активно конкурировать с иностранными вендорами, а во многих случаях и полностью их заменять. Особенно заметно этот процесс затронул госкомпании, организации, обеспечивающие критическую инфраструктуру, а также компании финансового сектора.
И почти сразу у всех возник закономерный вопрос: а на что на самом деле способны отечественные решения?
На практике, выбирая оборудование из нескольких позиций для закупки, быстро понимаешь, что объективной информации почти нет. В лучшем случае – рекламные брошюры и рассказы менеджеров. При этом всегда остаётся ощущение, что какие-то нюансы не проговорены или просто не попали в описание.
R-Style Softlab не первый год занимается задачами импортозамещения ИТ-оборудования. Столкнувшись с этой проблемой на практике, мы решили выстроить собственное внутреннее тестирование оборудования, предлагаемого к закупке. Была разработана методологии, назначены добровольцы – и работа закипела.
Результаты тестирования легли в основу рекомендаций по закупке и довольно быстро дали эффект: выбранная техника действительно оправдывает ожидания. Лучшие образцы мы в итоге предлагаем нашим клиентам.
Читать далее
Все видели снегопады на Камчатке? Нас на Урале регулярно засыпает, но не в таких масштабах. Впрочем, в любом регионе, как только выпадают первые снегопады, со всех сторон сыпятся ругательства и жалобы. Самое мягкое: «Где эта снегоуборочная техника» и «Почему не посыпали солью». Но если бы все знали, что уже есть решение, чтобы контролировать спецтехнику, следить за ее передвижениями и посыпкой реагентами, то мир стал бы добрее. Вот реальный пример из Беларуси: ребята из «Навитеч» настроили контроль уборки зимних дорог с помощью моей любимой телематики.
Читать далее
Загляните за кулисы NES-игры Castle Excellent! В этой статье — реверс-инжиниринг хранения данных. Я написал парсер, который собирает все комнаты замка в одну большую карту. Если Вам интересно, на что были способны программисты из 80-х — добро пожаловать под кат!
Читать далее
Привет!
Меня зовут Дмитрий Клопов. Я продакт-менеджер: отвечаю со стороны продукта за B2B-стрим в агрегаторе доставки готовой еды «Магнит Рестораны», входящего в состав бизнес-группы Магнит OMNI.
В рамках своего стрима я регулярно сталкиваюсь с необходимостью квартального планирования в условиях большого количества заказчиков — 15–20 человек — и ограниченного капаситета команды разработки. У каждого заказчика свои приоритеты, ожидания и аргументы, и при этом все они конкурируют за один и тот же ресурс команды.
Ниже я расскажу о подходе, который мы используем для квартального планирования B2B-стрима. Он позволяет сделать приоритизацию фич более наглядной и осознанной для всех участников процесса.
Читать далее
Привет, меня зовут Саша, и я продолжаю рассказывать о JavaScript тем, кто только взялся за освоение этого языка. В разработке нам постоянно нужны «умные», самостоятельные функции: счетчики, которые знают свое предыдущее значение, обработчики событий с индивидуальными настройками, механизмы для защиты данных.
Чтобы не городить глобальные переменные и не писать громоздкие конструкции (что почти всегда ведет к багам), мы посмотрим на еще одну фишку JS.
В предыдущих статьях мы разобрали: функции, их стрелочные записи, методы объектов и даже покорили this. Теперь пора переходить к теме, которая часто пугает на собеседованиях, но на деле оказывается невероятно элегантной — замыканиям.
Читать далее
Пришло время поговорить о главной функции сборщика мусора в CPython. В предыдущих частях (1, 2, 3) мы говорили о поколениях, инкрементальной и полной сборке мусора — но все они в итоге вызывают главную функцию, которая и реализует основной алгоритм циклического сборщика мусора — находит и разрывает циклы у объектов, которые уже вышли из использования.
В первой статье на тему устройства сборщика мусора я написал, что история началась, когда я попробовал исправить ошибку в CPython. И вот, в четвёртой статье, я наконец‑то добрался до функции, в которой была ошибка.
Если вам интересно, давайте посмотрим, как работает «сердце» сборщика мусора.
Читать далее
Начиная писать данную статью, меня не покидало ощущение, что я открываю “Ящик пандоры”. Холивар. Так как ну кто признается, что он плохой проектный менеджер? Кто скажет - я плохо управляю проектами? Ну я же… (дальше сами подставьте необходимый спич:))
Тем не менее, в рамках цикла статей по управлению рисками в GameDev данную область просто необходимо рассмотреть.
Четкое понимание целей, целевого состояния проекта, продукта, позволяет лучше понять присущие риски. Эффективное управление игровым проектом и присущими рисками, дает конкурентное преимущество тому, кто знает, как управлять и эффективно этим пользуется.
Мы все часто слышали: “Нужно задержаться”, “Нужно выйти в субботу”, “Вся команда пашет, а ты домой собрался”, “У нас дедлайн, нужно сделать и все”, “It is the Crunch time, baby!” и т.д. в подобном ключе. Я сам, бывало, работал и по выходным, и до утра. Иногда это было дико интересно, а иногда у тебя был просто выбор - либо поработать как просят, либо уволиться.
Давайте разберемся, почему так происходит?
Читать далее
20 января была зафиксирована атака на цепочку поставок, затронувшая индийскую компанию MicroWorld Technologies, разработчика антивирусного продукта eScan. Представители компании позднее сами сообщили изданию BleepingComputer о том, что злоумышленники взломали один из региональных серверов и подменили там файл обновления антивируса, который был доставлен клиентам. Атака была обнаружена «снаружи» — специалистами из компании Morphisec, которые проинформировали производителя через день после начала атаки.
Специалисты «Лаборатории Касперского» опубликовали подробный анализ использованного в атаке вредоносного кода. По их оценке, это достаточно необычный вектор атаки. Мало того что атаки на цепочку поставок в принципе происходят редко, еще реже фиксируются случаи компрометации антивирусного программного обеспечения. При этом атака была тщательно подготовлена: не только был взломан сервер обновления, но вредоносный код был специально разработан так, чтобы наиболее эффективно работать с учетом особенностей компрометируемого легитимного ПО.
Читать далее
Как компания с «покупкой в 1 клик» кинула меня на 90 000 ₽. Мой урок для IT-фрилансеров
Я в разработке с 2011, и по молодости и наивности накопил целую коллекцию серьёзных факапов. Каждому из которых я, как ни странно, благодарен — без них не было бы опыта.
Читать далее
«Данные закончились». «Архитектура исчерпана». «LLM упёрлись в потолок».
Звучит умно. Проблема? Это одномерное мышление.
Когда говорят «данные закончились» — имеют в виду текстовые данные для supervised pre-training. Это правда. Но это одна ось из шести, по которым модели становятся умнее.
Inference-time compute (o1/o3), algorithmic efficiency (Mamba, MoE), мультимодальность, tool use, RL и self-play — пять осей, о которых забывают, когда хоронят AI.
В 2020 году консенсус был: GPT-3 — потолок. В 2022: нужны триллионы токенов для каждого улучшения. В 2023: reasoning невозможен без symbolic AI.
Все эти «потолки» были пробиты.
Даю ментальную модель, которая позволит не попадаться на ложные прогнозы о «смерти AI» — и задавать правильные вопросы, когда кто-то уверенно предсказывает будущее.
Читать далее
Результаты исследования, в рамках которого моделировалось распределение денег в обществе и определялся основной фактор, ведущий к богатству.
Почему одним все, другим почти ничего?
Алессандро Плючино и его коллеги из Университета Катании получили ответ, создав компьютерную модель таланта и того, как человек им пользуется. На выходе модель показывает роль случая в этом процессе. Моделирование дало то же распределение богатства, что и в реальном мире. Плюс, еще раз подтвердилось, что самые богатые люди — далеко не самые одаренные. Они просто самые везучие.
Читать далееOpen Source Analysis: зачем нужен и как его проводить
В мире современной разработки приложений программное обеспечение с открытым исходным кодом (open source) стало неотъемлемой частью практически любого приложения. Open source библиотеки, фреймворки и компоненты ускоряют разработку, снижают затраты и способствуют инновациям. Но при этом существует серьёзная проблема: каждая зависимость — это не только ускорение разработки, но и дополнительные риски. В этой статье я постараюсь разобрать, что такое анализ открытого исходного кода (Open Source Analysis, или OSA), зачем его необходимо проводить, как он выполняется и как выглядит на практике.
Почему же open source — это одновременно благо и риск?
По разным исследованиям, от 70 до 90% кода в современных приложениях – это open source компоненты. Обычный сервис может тянуть за собой в проект сотни транзитивных зависимостей, о существовании которых разработчик может иногда даже не подозревать.
Примечание: транзитивная зависимость – это косвенная зависимость, пакет или библиотека, на которую ПО зависит косвенно через другую зависимость, это «зависимость от зависимости».
И в этом моменте у нас уже появляются проблемы. А именно:
Читать далее
Закономерности социального развития известны тысячи лет. Рецепты — не секрет. Но ни одна цивилизация не смогла их последовательно применить. Жадность, глупость, злая воля — это не объяснение, это пересказ проблемы другими словами.
Я начинал с поиска того, кто мешает. Пришёл к другому: сложные общества сами порождают механизм, который одновременно обеспечивает их устойчивость и блокирует развитие. Без заговора. Без злого умысла. Без координации. Как он устроен, почему его нельзя просто отключить и что меняется прямо сейчас — об этом статья.
Кто виноват?
Обычно обезьяны решают головоломки с удовольствием, но получив за это изюм, начинают ошибаться. Когда школьникам дают деньги за хорошие оценки, их интерес к учебе исчезает. Интересно, что и взрослые ведут себя так же. Когда программистам платят за каждую закрытую задачу, производительность команды падает примерно на 20%. Возможно, есть другой вид мотивации, когда само выполнение задачи служит вознаграждением?
Что ж, попробуем в этом разобраться.
Меня зовут Костя Дубровин. Я веду канал про книги.
РазобратьсяЯ активно использую на проекте Kafka Connect Framework и в частности Kafka JDBC Sink Connector для быстрого сохранения данных из Kafka Topic в БД PostgresSQL. Для большинства задач достаточно написать простую JSON-конфигурацию и все стабильно и быстро работает из коробки. Нет необходимости в написании собственного кода. Однако в нетиповых ситуациях расширяемость Kafka Connect тоже помогает - можно переопределить и написать один из компонентов.
В конфигурации JDBC Sink Connector Task существует настройка dialect.name, которая отвечает за выбор диалекта для работы с конкретной БД. Как правило, в 99% случаев используется один из уже реализованных для популярных БД диалектов, как например в моем случае PostgresSqlDatabaseDialect для PostgreSQL.
Может показаться, что вряд ли кому-то понадобится реализовывать свой диалект, если только не имеем дело с какой-то специфичной непопулярной БД. Однако на практике оказалось, что реализация своего диалекта даже для PostgreSQL может быть полезна для решения некоторых возникающих прикладных задач.
В данной статье я хочу показать идеи того, как реализация своего DatabaseDialect может помочь при имплементации нестандартных сценариев для вполне себе популярной БД Postgres, для которой существует PostgresSqlDatabaseDialect.
Читать далее
Всем привет! Когда речь заходит о разработке высоконагруженных систем, многие предлагают: «python, сделать проще и быстрее». Но есть проблема: Скорость разработки != скорость и качество работы сервиса. Когда мы делаем любой продукт, важны: Масштабируемость, стабильность работы под большой нагрузкой, предсказуемость поведения системы — особенно когда речь идет о тысячах одновременных пользователей, лентах новостей в реальном времени, уведомлениях и сложных связях между разными сущностями.
Именно поэтому и выбрана Java и Spring Boot как основа. Банки, сервисы видео, они работают именно на Java и Spring.
Одна из особенностей: строгая типизация, качественные инструменты для многопоточности, мощная экосистема и предсказуемое потребление памяти делают Java идеальным выбором для систем, где падение = полная потеря пользователей.
Попробую сделать цикл статей по разработке соцсети, которая будет объединять в себе ВК, пикабу, и иже с ними. Не ради «создания продукта который затмит всех и вся», а ради самого программирования.
Итак, начну, среда разработки Intellij Idea. О, точно, весь проект будет доступен из gitLab. Нам необходимо создать файлы с конфигурацией. можно сказать что их обычно 3. Да, я про application.yml. один из них общий, который так и называется: application.yml, и еще два: application-dev.yml и application-prod.yml
Читать далее
Когда на сервере появляется «прожорливый» процесс, который забирает все ядра и постепенно выдавливает память, хочется ограничить его быстро — но так, чтобы это было воспроизводимо и не держалось на магии.
В статье — практический разбор cgroups v2: как руками через cgroupfs создать группу, задать лимиты CPU/RAM и правильно запускать процессы без «окна без ограничений», а затем сделать то же самое через cg*-утилиты и systemd-run/slice. По дороге станет ясно, почему эти приёмы напрямую перекладываются на мир Docker и Kubernetes.
Как быстро пролетели шесть месяцев! Продолжаю рассказывать о том, как решил сделать пет-проект: НормЦРМ. Сам я ремесленник-одиночка и пользовался ограниченным набором инструментов для ведения дел: Google Таблицы, да Windows-заметки. Решил все эти данные свести воедино в рамках собственной црмки.
Я не разработчик, а проектировщик интерфейсов (UX/UI-дизайнер). Опыта в программировании совсем немного. Поэтому пет-проект был мне особенно интересен. Я уже двадцать лет готовлю проектную документацию для других — а в этот раз для себя.
Сейчас расскажу, что сделал по проекту за последние полгода, как мне в этом помогли ChatGPT и Codex, как изменился процесс работы и почему это поначалу было скучно и грустно — а теперь с каждым днём жизни проекта всё интереснее и веселее.
Читать далее
В какой-то момент почти каждая продуктовая IT-команда приходит к одной и той же мысли: «Нам нужно навести порядок в процессах».
Это обычно происходит не из-за моды на менеджмент, а из-за вполне конкретных ощущений:
Читать далее
Сегодня подпись — это движение шариковой ручкой, галочка на экране смартфона или шифрованная цифровая формула. Мы привыкли к ней настолько, что забыли: за этим простым жестом стоят тысячи лет эволюции человеческой потребности утверждать свою личность, власть, слово и собственность.
Задолго до появления бумаги и даже письма люди изобретали способы «отметить» себя: выводили тотемные знаки, прижимали к сырой глине ногти, резали пальцы для кровной клятвы, вырезали печати на камне и металле. Перстни-печатки, тамги кочевников, японские ханко, турецкие тугры, византийские хрисовулы — все они выполняли одну задачу: подтвердить подлинность и придать словам юридическую силу.
История печати — это история доверия. Того самого — между племенами, родами, государствами, людьми.
Давайте проследим, как человечество училось «подписываться» — от отпечатков пальцев до цифровых сертификатов.
Читать далееКак устроен конвейер
Сборочный конвейер большой софтверной компании обычно состоит из множества виртуальных машин, управляемых оркестраторами сборки. В качестве последних часто используются TeamCity и Jenkins. В этом случае на виртуальных сборочных машинах установлены соответствующие сборочные агенты.
При разработке программного обеспечения для Windows есть необходимость подписывать исполняемые модули (файлы EXE и DLL), а также инсталляционные пакеты MSI с использованием закрытого ключа.
Как всё было хорошо и просто раньше
До 2025 года такие закрытые ключи в комплекте с открытыми ключами и с сертификатами открытых ключей можно было приобрести у компании GlobalSign в виде отчуждаемого крипто-контейнера PFX в формате pkcs12, доступ к содержимому которого был защищён паролем.
Читать далее
Человеческий фактор, который все упускают
Когда Дарио Амодеи, генеральный директор Anthropic, сказал, что нас отделяет всего 6-12 месяцев от ИИ-систем, способных делать всё, что делают программисты, мне пришлось остановиться.
Это не "в будущем". Это практически следующий год.
В то же время Anthropic представила тесты производительности своей новой модели Claude Opus 4.5, показывающие значительные улучшения в кодировании, рассуждении и обработке сложных задач. Цифры выглядят действительно впечатляюще.
И я начал задаваться вопросом: действительно ли эти тесты означают, что разработка программного обеспечения вот-вот будет полностью автоматизирована? Позвольте мне разобрать, что, на мой взгляд, на самом деле происходит.
Читать далееВ рамках одного из обсуждении с чатах я предложил использовать функцию Merge для IAsyncEnumerable<T>, чтобы объединить результаты чтения однотипных данных из разных источников. Но когда попытался сделать пример оказалось что такой функции в System.Linq.Async нет. Есть аналог в Reactive Extensions, но тащить библиотеку для одного примера не захотел и решил написать сам.

Приветствую всех. В данной статье я расскажу, как заказал, отремонтировал и изучил новейшего голосового робота из Китая. Статья не является рекламой, я оцениваю от себя как независимый программист. Ввиду некоторой спешки, данная статья не будет покрывать все аспекты, мы лишь коротко пройдёмся по устройству данного робота. В дальнейшем, если понравится, выпущу продолжение о полной сборке такого же робота с нуля.
Читать далее
Всем известный Doom запускали на большом наборе различной техники и с различной степенью его портирования на выбранную платформу. Вот и я решил, что смогу что-нибудь куда-нибудь портировать.
Читать далее
Привет, Хабр! Мы — Настя, Эвелина и Миша — бэкенд-разработчики Т-Банка, пишем код на Scala и горим желанием его популяризировать. Новый год — новый импульс. После январских каникул мы, соскучившись, возвращаемся к любимой Скале с обновленным взглядом и зарядом вдохновения (づ ◕‿◕ )づ
Читать тридцать седьмой выпуск
Как за один вечер собрать собственную систему транскрибации, если вам надоело платить за подписки и сливать записи конфиденциальных встреч в «облачные мозги»?
В этой статье разбираем Q-scribe — прагматичный open-source конвейер для маленькой команды. В основе: OpenAI Whisper для распознавания речи, Streamlit для быстрого интерфейса и Tailscale для безопасного удаленного доступа к вашей видеокарте RTX 4080 без «выхода» в открытый интернет.
Минимум кода, максимум контроля и нулевые затраты на облака. Идеально для тех, кому нужно быстро превращать видео встреч в текст, сохраняя данные на своем железе.
Читать далее
Anthropic опубликовали исследование, как AI влияет на скорость выполнения задач и на развитие навыков программирования.
В эксперименте участвовали 52 джуна. Все решали одну и ту же задачу с новой для них технологией. Половине разрешили пользоваться AI, половине — нет. После выполнения задачи все участники прошли итоговый тест на понимание темы.
Читать далее
Проект OpenClaw успел обрасти мифами. Одни отмахиваются: это якобы завайбкоженная поделка выходного дня, на которую был способен кто угодно — хоть вчерашний новичок. Напротив, другие уверяют, что опыт автора липкой жижей сочится буквально из каждой интеграции. Оба лагеря сходятся во мнении: второе переименование — это был явный перебор.
В реальности все по-своему заблуждаются. Питер Штайнбергер, программист-ветеран с большим стажем, действительно не читает, что улетает в проект, а OpenClaw — не третье, а пятое название ИИ-агента.
Старорежимный разработчик разрешил языковым моделям писать за него код и управлять его жизнью. Полтора десятка лет назад он считал мегабайты, сегодня расточительно запускает по десять агентов и расходует токены миллиардами. Что на подобное сподвигло?
Читать далее
ДИСКЛЕЙМЕР: Статья написана на основе интервью с Алексеем, основателем компании, которая производит термосумки и терморюкзаки с индукционным подогревом и датчиками контроля для доставки продуктов.
Я всю жизнь хотел быть конструктором, изобретателем. Но в 90-е технические специальности стали не востребованы — пошёл в экономический вуз на банковское дело. В банке не проработал ни дня. Пошёл работать на стройку. Проработал там лет семь. Нравилось создавать из ничего что-то новое своими руками.
Однажды в 2004 году ребята на стройке попросили сделать небольшую термосумку — собирались везти печень в контейнере. Я пошёл в магазин, купил материалы, пошёл в дом быта: сделайте мне термосумку. Термосумок тогда не было нигде. В Яндексе по запросу две картинки и пустой экран. Сделали простенькую, держала тепло пару часов.
Думаю: а может, это ещё кому-то надо? Дал объявление в бесплатную газету с тиражом 200 тысяч. Написал: такая-то сумочка для рабочих, дальнобойщиков, водителей. И мне начали звонить. Рабочие заводов, водители электричек, машинисты поездов. Это было моё первое маркетинговое исследование.
Читать далее
Если у нас преобладает умственная работа, то главным нашим ограничением является мыслетопливо - некий когнитивный ресурс, необходимый для принятия решений, мышления, произвольного удержания внимания, поддержания силы воли…
“Не хватило времени” - социально-приемлемая отмазка, которая позволяет не думать над истинными причинами. Но здесь, как и в известном анекдоте, есть нюанс…
Читать далее
Делюсь опытом разработки проекта, где потребовалось совместить Laravel и «Битрикс Управление Сайтом» в одной системе: подробно описал путь от настройки окружения и выбора инструментов до внедрения CI/CD и решения возникавших проблем.
Читать целиком, пепе
При проектировании раздела ЭОМ часто возникает необходимость на однолинейных схемах отображать дополнительное оборудование, в частности: счетчики учета, вольтметры, амперметры, независимые расцепители и т.д. В nanoCAD BIM Электро присутствует такая возможность. В этой статье мы разберем, как добавлять дополнительное оборудование в однолинейные схемы.
Добавить оборудование
Громкий и пафосный заголовок, согласен. Но в свой проект нужно верить, и я действительно верю и считаю, что приложение, которое я разрабатываю может «стрельнуть» - а именно вывести налоговое консультирование и сопровождение налоговых проверок на принципиально другой уровень.
Моя цель, дать бизнесу инструмент, который:
Читать далее
Сетевые инженеры и сотрудники ИБ в силу своих обязанностей должны минимизировать возможность проникновения в инфраструктуру. Основными способами является сегментация сети и ведение правил межсетевого экрана, минимизирующие возможные доступы. Выполняя эту задачу, можно делать все вручную. А можно использовать Firewall management (альтернативное название - NSPM - Network Security Policy Management) приложение, преимущества и варианты внедрения которого немного раскрываются в данной статье.
Если создание новых Access Control List (ACL) приводит к путанице и уже нет понимания, какое правило зачем было внесено, то пора наводить порядок, даже, скорее уже поздно. А если есть желание усилить меры ИБ или не хочется краснеть перед аудитором, то тут уже совсем сложно обойтись без какой-то документации. Но при этом очень хочется минимизировать время на ее формирование. Еще лучше вести документацию в одном месте и интегрировать информацию из нее в регулярные контроли.
Вопросы о том, есть ли у нас карта сети и какие информационные потоки у нас используются обычно вгоняют сетевого инженера в грусть. Хочется иметь готовый ответ на данный вопрос, так как все равно в итоге приходится тратить время на рассказ о том, как сейчас все устроено.
Открыты ли все сетевые правила для нашего резервного контура - совсем тяжелый и очень сложно проверяемый вопрос. Поэтому большинство сетевых инженеров ответят «Да», надеясь на удачу и на то, что резервный контур еще долго будет находиться в состоянии резерва. Понятно, что точно проверяет только тестирование, но желательно минимизировать потенциальное количество инцидентов до его организации и иметь возможность проверки доступности всех необходимых задокументированных потоков.
Читать далее
Ошибки в спецификациях, бесконечные правки чертежей, ручной ввод данных из CAD в учетную систему – знакомые боли? АО «Профсталь» прошло этот путь и нашло решение. Компания не просто автоматизировала рутину – она создала дружелюбную цифровую экосистему, где проектирование в nanoCAD и управление затратами в 1С стали единым безошибочным процессом. Результат, который говорит сам за себя: время расчетов сократилось в 2-3 раза, объем обрабатываемых заявок вырос вдвое, а продажи по проектам конструкторов увеличились более чем в два раза.
Из этой статьи вы узнаете, как «Профсталь» шаг за шагом выстроила интеграцию компонента «СПДС» Платформы nanoCAD и 1C: ERP через Microsoft SQL Server. От проектирования цифровых двойников сэндвич-панелей до автоматической выгрузки спецификаций – мы покажем технологическую цепочку, которая исключает ошибки и экономит сотни часов рабочего времени.
Это пример для руководителей и собственников строительного бизнеса, которые хотят сократить издержки, ускорить проектный цикл и повысить надежность смет, для ИТ-директоров и руководителей отделов автоматизации в строительстве, которые ищут реальные примеры интеграции CAD и ERP, и, конечно, для главных инженеров, проектировщиков и сметчиков, уставших от рутины и конфликта данных между отделами.
Узнать об опыте
Родители малышей постоянно фотографируют их проделки. Дети копируют наше поведение как обезьяны, поэтому наш младший тоже вскоре захотел щёлкать затвором. Обычно мы делаем снимки на телефон, но давать его будет не очень хорошей идеей: дети иногда роняют вещи. Что ещё хуже, иногда в телефоне включаются какие-то странные будильники и меняются настройки. Чтобы такого не происходило, я решил специально для младшего ребёнка купить камеру.
Очевидно, дети в таком возрасте не могут пользоваться всеми функциями зеркальных или даже компактных камер. К счастью, в мире много детей с интересом к фотографии, поэтому есть и рынок для дешёвых (в буквальном смысле) камер: в них не так много функций и наворотов, крепкий пластмассовый корпус, а низкая цена не позволяет расстроиться из-за поломки. Я поискал такую камеру на Taobao и остановился на той, которая показалась мне достаточно простой. Я не надеялся, что фотографии будут качественными, но хотя бы разрешение должно оказаться приемлемым.
Для включения камеры достаточно было нажать на кнопку. Однако дальше всё становилось сложнее: как и во многих китайских устройствах, производитель стремился запихнуть в камеру кучу функций, поэтому после загрузки открывалось меню, где одной из опций был режим камеры. Если бы у камеры был сенсорный экран, как у наших телефонов, то это не вызвало бы проблемы, но перемещаться по меню нужно было при помощи курсорных клавиш, а это оказалось слишком сложно для трёхлетки, живущего в нашем современном мире.
Поэтому я задумался: наверняка ведь есть способ пропустить меню и сразу перейти в режим камеры? Должно быть, внутри камеры находится какой-нибудь процессор ARM, и я не думаю, что разработчики заморочились с защитой кода. Достаточно считать его через JTAG, загрузить в Ghidra, найти нужный бит, изменить его, снова записать код во флэш-память, и всё.
Читать далее
Люди часто забывают или даже не задумываются о том, что многие обыденные вещи в окружающей нас сегодня действительности стали возможными лишь благодаря унификации технологического слоя, на котором эти вещи основаны. Существование бытовых приборов - микроволновок, телевизоров, стиральных машин, холодильников и компьютеров - было бы невозможно без повсеместного внедрения электричества, унификации напряжения в электрических сетях и унификации разъёмов розеток. Современная наука была бы невозможна без принятия единой математической нотации и одинаковых единиц измерения, а современный интернет - без повсеместного распространения компьютеров и унификации протокола обмена данными.
Одну из таких унификационных революций произвёл в середине XX века Малкольм Маклин - американский предприниматель, внедривший в индустрию грузоперевозок единый стандарт контейнеров. До контейнерной революции Маклина трюмы и палубы кораблей заполнялись товарами разной формы - доски, мешки, коробки и бочки с жидкостями загружались на борт вперемешку. Разная форма не позволяла заполнить доступный объём оптимальным способом. При необходимости довести товар от порта до места назначения требовалось перегрузить его в вагон поезда или кузов грузовика. Это всё было жутко долго и неудобно. Контейнеры изменили ситуацию.
Суть контейнерной революции состояла в абстракции процесса перевозки от перевозимого товара. Товары загружались в стандартизированные контейнеры определённой формы и объёма, а корабли, поезда и грузовики переделывались в платформы для перевозки этих самых стандартных контейнеров. Вся портовая и вокзальная инфраструктура была постепенно перестроена под массовое хранение, загрузку и разгрузку стандартизированных контейнеров. Благодаря этому процесс загрузки и выгрузки заметно ускорился, а после и вовсе автоматизировался.
В дальнейшем подобная контейнерная революция произошла в доставке программного обеспечения. Если прежде программистам приходилось строить свои самодельные системы для доставки кода приложений на сервер и его запуска, то названный в честь портовых грузчиков Docker позволил оборачивать любую программу в стандартизированный контейнер и запускать его на сервере с помощью автоматизированных средств развёртывания вроде Kubernetes.
Идея абстрагирования системы доставки от того, что именно доставляется, принесла человечеству огромную пользу. Но мы извлекли из стандартных физических контейнеров ещё далеко не всю пользу. В этом эссе я хочу поразмышлять, как с помощью контейнеров и тотальной майнкрафтизации мы можем выйти на следующий технологический уровень развития цивилизации. Внедрение контейнеров в перевозки заняло несколько десятилетий и потребовало полной перестройки людских умов. Полноценная контейнеризация нашей цивилизации потребует ещё больших усилий, но её результаты превзойдут все наши самые смелые мечты...
Читать далееСначала мы контролировали регистры, потом добавили проверку типов, затем — заимствование и владение. Каждый шаг забирал у нас "свободу" и давал надёжность. Проверка имён — следующий логический этап этой эволюции. Не мы выбираем, куда идти — логика развития языков ведёт нас туда.
Читать далее
После написания первого материала я получил достаточно много комментариев и отзывов. Это было очень приятно, спасибо! Обязательно попробую запустить там иксы и прогнать предложенными тестами. Вместе с этим в голове крутилась простая до безобразия мысль: а можно ли поставить туда Linux?
Как только начал изучать этот вопрос, показалось, что установить его будет очень просто. Но реальность преподнесла сюрпризы. Сегодня покажу, как получить работающий Linux на этой игровой консоли с PowerPC-процессором IBM Broadway.
Читать далее
Всем привет! Меня зовут Александр Васильцов, я руковожу отделом развития инфраструктуры в R-Style Softlab. В рамках своей работы я занимаюсь тестированием реестрового и импортозамещённого оборудования, которое используется на реальных рабочих местах специалистов.
Импортозамещённая техника за последние годы прочно вошла в нашу жизнь. Серверы, ПК, ноутбуки, сетевое оборудование – всё это появилось на рынке и стало активно конкурировать с иностранными вендорами, а во многих случаях и полностью их заменять. Особенно заметно этот процесс затронул госкомпании, организации, обеспечивающие критическую инфраструктуру, а также компании финансового сектора.
И почти сразу у всех возник закономерный вопрос: а на что на самом деле способны отечественные решения?
На практике, выбирая оборудование из нескольких позиций для закупки, быстро понимаешь, что объективной информации почти нет. В лучшем случае – рекламные брошюры и рассказы менеджеров. При этом всегда остаётся ощущение, что какие-то нюансы не проговорены или просто не попали в описание.
R-Style Softlab не первый год занимается задачами импортозамещения ИТ-оборудования. Столкнувшись с этой проблемой на практике, мы решили выстроить собственное внутреннее тестирование оборудования, предлагаемого к закупке. Была разработана методологии, назначены добровольцы – и работа закипела.
Результаты тестирования легли в основу рекомендаций по закупке и довольно быстро дали эффект: выбранная техника действительно оправдывает ожидания. Лучшие образцы мы в итоге предлагаем нашим клиентам.
Читать далее
Все видели снегопады на Камчатке? Нас на Урале регулярно засыпает, но не в таких масштабах. Впрочем, в любом регионе, как только выпадают первые снегопады, со всех сторон сыпятся ругательства и жалобы. Самое мягкое: «Где эта снегоуборочная техника» и «Почему не посыпали солью». Но если бы все знали, что уже есть решение, чтобы контролировать спецтехнику, следить за ее передвижениями и посыпкой реагентами, то мир стал бы добрее. Вот реальный пример из Беларуси: ребята из «Навитеч» настроили контроль уборки зимних дорог с помощью моей любимой телематики.
Читать далее
Загляните за кулисы NES-игры Castle Excellent! В этой статье — реверс-инжиниринг хранения данных. Я написал парсер, который собирает все комнаты замка в одну большую карту. Если Вам интересно, на что были способны программисты из 80-х — добро пожаловать под кат!
Читать далее
Привет!
Меня зовут Дмитрий Клопов. Я продакт-менеджер: отвечаю со стороны продукта за B2B-стрим в агрегаторе доставки готовой еды «Магнит Рестораны», входящего в состав бизнес-группы Магнит OMNI.
В рамках своего стрима я регулярно сталкиваюсь с необходимостью квартального планирования в условиях большого количества заказчиков — 15–20 человек — и ограниченного капаситета команды разработки. У каждого заказчика свои приоритеты, ожидания и аргументы, и при этом все они конкурируют за один и тот же ресурс команды.
Ниже я расскажу о подходе, который мы используем для квартального планирования B2B-стрима. Он позволяет сделать приоритизацию фич более наглядной и осознанной для всех участников процесса.
Читать далее
Привет, меня зовут Саша, и я продолжаю рассказывать о JavaScript тем, кто только взялся за освоение этого языка. В разработке нам постоянно нужны «умные», самостоятельные функции: счетчики, которые знают свое предыдущее значение, обработчики событий с индивидуальными настройками, механизмы для защиты данных.
Чтобы не городить глобальные переменные и не писать громоздкие конструкции (что почти всегда ведет к багам), мы посмотрим на еще одну фишку JS.
В предыдущих статьях мы разобрали: функции, их стрелочные записи, методы объектов и даже покорили this. Теперь пора переходить к теме, которая часто пугает на собеседованиях, но на деле оказывается невероятно элегантной — замыканиям.
Читать далее