Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Как за сутки обойти миллиард веб-страниц

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели5.4K

TL;DR:

1,005 миллиарда веб-страниц

25,5 часа

$462

По какой-то причине уже долгое время никто не писал о том, что требуется для краулинга большой части веба: последним обнаруженным мной источником был пост Майкла Нильсена за 2012 год[1].

Очевидно, что за это время много изменилось. Всё стало больше, лучше и быстрее: у CPU появилось намного больше ядер, на смену жёстким дискам пришли твердотельные накопители NVMe, скорости ввода-вывода которых сравнимы со скоростями RAM, существенно выросла ширина сетевых каналов, существенно расширился список типов инстансов EC2 и так далее. Но в чём-то ситуация и усложнилась: гораздо бóльшая часть веба стала динамической, а контент теперь более тяжёлый. Как поменялось состояние Интернета? Теперь узкие места стали другими, и для создания своего Google по-прежнему нужно около 41 тысячи долларов? Мне захотелось это узнать, поэтому я собрал и выпустил собственный веб-краулер1 в условиях похожих ограничений.

Читать далее

Параллельный запуск автотестов на Java: лучшие практики для стабильного CI/CD

Время на прочтение8 мин
Охват и читатели4.6K

Параллельный запуск автотестов — это как ускоритель: экономит часы, но если не знать подводных камней, превращает прогон в хаос. Тесты зелёные локально, красные на CI? Падают без причины, а перезапуск «лечит»? Знакомая история. В этой статье делюсь реальными кейсами из боевых проектов: почему статические поля убивают стабильность; как «гонка данных» маскируется под рандомные падения и многое другое

Читать далее

glenv: синхронизируем .env файлы с GitLab CI/CD переменными без боли

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.7K

Привет, Хабр!

Если вы работаете с GitLab и у вас больше одного окружения — вы наверняка знаете этот ритуал: открываешь Settings → CI/CD → Variables, начинаешь вбивать переменные вручную, на пятой ошибаешься, на двадцатой теряешь счёт, на пятидесятой начинаешь сочувствовать тем, кто хранит секреты прямо в коде.

Я написал glenv — CLI-инструмент на Go, который синхронизирует .env файлы с GitLab CI/CD переменными через API. Под катом — история о том, почему существующих решений не хватило, как это устроено внутри и несколько примеров использования.

Читать далее

Реализация принципов BIM для проектирования комплексных технологических процессов на примере ПО «PROMPROEKTOR»

Время на прочтение7 мин
Охват и читатели4.3K

Введение

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

Можете убедиться в этом сами на примере процесса сборки технологической схемы...

Убедиться

S3 Архипелаг: как мы в Диасофте построили свое объектное хранилище

Время на прочтение19 мин
Охват и читатели4.9K

Лет десять назад объектное хранилище было экзотикой. Крупные компании обходились NFS‑шарами и надеждой, что RAID не развалится в самый неподходящий момент. Средний бизнес в целом не понимал, зачем это нужно. Но сегодня все изменилось. S3 API стал таким же стандартом, как REST или JSON. Мы в Диасофте построили «Фабрику данных» (Digital Q.DataFactory) в архитектуре Data Lakehouse на основе S3 Архипелаг, которая объединяет гибкость Data Lake с надежностью хранилища данных. В этой статье расскажем, как построили слой хранения.

Читать далее

Хакинг бытовой техники: от реверса стиралки к созданию открытого сервисного ПО

Время на прочтение12 мин
Охват и читатели7.8K

«Однажды у нашей старенькой стиралки где-то нарушилась логика, и она решила, что отжим нам не нужен. Вопреки нашим ожиданиям, вместо полусухих вещей мы получили мокрые». 

С этой поломки началось исследование Северина фон Внук-Липински и Хайо Нёренберга, в ходе которого они им удалось восстановить работу диагностического протокола стиральной машины Miele, получить доступ к скрытым функциям и извлечь прошивку платы управления.

В этой статье разберем их доклад Hacking Washing Machines с конференции 39C3 и проследим, как мелкая бытовая неисправность привела к полноценному реверсу стиралки, а затем — к созданию свободной утилиты, которая заменяет закрытый фирменный софт для ремонта техники Miele.

Читать далее

Я два месяца платил 300к человеку, который тихо скармливал мои задачи в ChatGPT

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели29K

Осенью 2025-го у нас ушёл мидл. Типичная история — нашёл +80к в каком-то финтехе, ему там обещали «плоскую структуру и свободу принятия решений» (спойлер: через три месяца он написал мне что хочет вернуться, но мы уже наняли замену). Замену, кстати, нашли не быстро. Провели штук двадцать собесов, может больше, я со счёта сбился после пятнадцатого.

Рынок такой: половина не может обход дерева написать (я серьёзно, я уже думал может я что-то не так спрашиваю, но нет), трое врали про опыт настолько плохо что мне неловко было за них, и один спросил можно ли работать из Бали при условии что созвоны в девять утра. Нельзя, у нас on-call.

Короче, появился кандидат. Назову его Дима.

Читать далее

Не доверяй и проверяй: как PAM-системы работают в архитектуре Zero Trust

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели4.2K

Не доверяй и проверяй: как PAM-системы работают в архитектуре Zero Trust

По данным «Солара», в 2026 году продолжится рост кибератак на привилегированные учетные записи. Скомпрометировав их, злоумышленники действуют внутри сети как легитимные администраторы. В таком случае традиционная модель «безопасного периметра» бессильна, потому что она не видит угроз изнутри. Поэтому организации начинают переходить к архитектуре нулевого доверия – Zero Trust – и внедряют PAM-системы. О том, как устроена эта связка и почему без PAM Zero Trust остаётся лишь теорией, рассказывает Антон Залесский, бизнес-архитектор группы развития продуктов по управлению доступом ГК «Солар».

Читать далее

MySQL, который выживает: отказоустойчивый кластер с Orchestrator

Уровень сложностиСложный
Время на прочтение23 мин
Охват и читатели5.1K

MySQL, который выживает: отказоустойчивый кластер с Orchestrator

Разбираем настройку HA-кластера с Keepalived и Orchestrator для тех, кто предпочитает контроль облачным black box-решениям.

Хабр, привет!

Почему проблема отказа мастера в кластере MySQL до сих пор актуальна? Потому что сегодня 10 минут простоя у крупных заказчиков – это ЧП, а человеческий фактор в кризисной ситуации – главный источник риска. Многие проекты, мигрируя на MySQL 8.0, заново проходят путь настройки отказоустойчивости. И далеко не все готовы доверить свою основную базу данных облачным managed-сервисам, иногда нужен полный контроль на своей инфраструктуре.

Читать далее

Выбор кластеризации Active-Passive или Active-Active при обеспечении отказоустойчивости периметрального NGFW

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.8K

В процессе своей трудовой деятельности, начиная от заместителя руководителя по ИТ в крупной образовательной организации и заканчивая ведущим инженером одной из компаний РФ, стоящих на острие современных решений кибербезопасности – меня всегда озадачивал вопрос отказоустойчивости периметрального решения компании или учреждения. При этом хотелось попасть в идеальный баланс между целесообразностью выстраиваемой архитектуры и отсутствием избыточности решения.

Говоря про периметральные NGFW, если отбросить вопрос их корректной настройки инженером и штатного функционирования бекендов, основным способом обеспечения отказоустойчивости является построение кластера из нескольких экземпляров устройств, которые функционируют как единое целое. При этом существуют два принципиально разных варианта реализации – это кластер Active|Passive (A|P) и кластер Active | Active (A|A).

Сегодня я хотел бы поговорить о том, какой тип кластеризации подходит больше к какому типу сети/компании/контекста использования, а также какие преимущества и недостатки имеются у каждого из них.

Кластеризация в режиме Active|Passive представляет собой технологию объединения двух NGFW устройств (каждое из которых будет называться нодой) в единый логический элемент сети (кластер) для обеспечения высокого уровня отказоустойчивости и доступности.

Фактически за счет дублирования физического устройства при этом устраняется проблема «единой точки отказа», когда при выходе из строя узла (как самого NGFW, так и сетевого интерфейса, линка к сетевому интерфейсу) кластер продолжает обрабатывать трафик без прерываний прозрачно для пользователя и сервисов, приложений.

Читать далее

Как бы выглядел интернет, если бы Adobe не убила Flash

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели20K

Вспомните нулевые — браузерные страницы мигали баннерами и интерактивными элементами, игры запускались прямо во вкладке, а Flash Player был знаком почти всем. Но в 2020 году Adobe завершила его поддержку и начала блокировать Flash-контент. Так и закончилась эта история, а что было бы, если всё пошло иначе? Историю Flash и альтернативный сценарий разбираю в статье. 

Читать

Russtech + Стажеры + ML: история разработки решения для мониторинга цифровых экранов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели3.5K

Всем привет! Меня зовут Никита Крестьянинов, я руководитель группы управления бизнес-процессами служб сервиса в команде Russtech. Сегодня я хочу рассказать, как мы совместно со стажерами разработали ИИ-инструмент, способный отслеживать состояние работы цифровых рекламных конструкций.

Читать далее

Оптимизация стоимости владения K8s-кластерами в AWS и YC

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели3.5K

Облака обещают магическую экономию и бесконечное масштабирование. На практике Kubernetes‑кластеры в AWS и Яндекс.Облаке легко превращаются в бездонную чёрную дыру для бюджета. Мы в «Антиплагиате» научились готовить споты, научили шедулер и дешедулер работать правильно и выжали из кубов максимум надежности и производительности при минимуме затрат. В этой статье — конкретные шаги, которые позволили сэкономить миллионы рублей.

Казалось бы, задай вопрос любой популярной LLM, она выдаст набор рецептов на любой вкус. То, что будет в этой статье, LLM не расскажут. Я проверял. В этой статье, только реализованные и действительно работающие рецепты с плюсами, минусами и подводными камнями.

Без галлюцинаций и смс, погнали!

Ближайшие события

Паттерны конкурентности в Go. Подробный разбор. Часть 1. Worker pool

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели3K

Пример паттерна Worker Pool на Go с подробным описанием кода. Пример подходит для знакомства с паттерном в процессе обучения, собеседования, но не является шаблоном для production кода.

Читать далее

Стоп-слова, исключения и словоформы в Manticore

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели3.3K

Теперь Manticore Search поддерживает прямое указание настроек токенизации непосредственно в команде CREATE TABLE. Таким образом, исчезает необходимость создавать внешние файлы при настройке стоп-слов, исключений, словоформ и слов без позиции, делая создание таблиц проще и удобнее для развертывания.

Читать далее

Скайнет нанимает фрилансеров: как ИИ-агенты начали покупать человеческий труд через API

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели4.1K

Представьте себе мир, в котором искусственный интеллект не просто генерирует текст или пишет код, но и выступает в роли полноценного работодателя, нанимая живых людей для выполнения задач в реальном мире. Звучит как завязка киберпанк-романа, однако это уже стало нашей реальностью благодаря появлению специализированных платформ. В недавнем исследовании подробно разбирается новая угроза информационной безопасности, возникшая на стыке цифрового и физического миров, где автономные алгоритмы получают возможность программно покупать человеческие действия.

Чтобы шаг за шагом разобраться в механике этого явления, давайте рассмотрим платформу RENTAHUMAN.AI, которая была запущена специально для взаимодействия ИИ с фрилансерами. Авторы исследования предлагают отличную аналогию для понимания сути проблемы. Раньше злоумышленники платили людям копейки за решение капчи, чтобы обмануть базовые системы цифровой защиты, а теперь подобные маркетплейсы позволяют алгоритмам коммерциализировать и использовать любые физические действия человека для своих целей.

Читать далее

Frontend Status: свежий дайджест фронтенда и AI — 25.02.2026

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4K

Привет!

Это шестой выпуск Frontend Status — дайджеста по фронтенд-разработке.

В этом выпуске:

Медиа · TanStack Router и маршрутизация в React · Pinia и будущее Vue (Эдуардо Сан Мартин)

AI · Агентное будущее Next.js · AGENTS.md по-новому (Эдди Османи) · Вайб-кодинг и ценность кода (Маттео Коллина) · Таймлайн LLM за 10 лет

Безопасность и браузеры · OWASP для агентных приложений (Auth0) · Firefox 148 setHTML() вместо innerHTML · CSS corner-shape в Blink (Chrome)

CSS · Псевдокласс :near() · Смерть скролл-фейду (Крис Койер) · x86 на чистом CSS/HTML

JS/TS · Зелёный дизайн интерфейсов (Смэшинг) · Полифил switch · TypeScript v6 beta · TSSLint v3 · Асинхронные паттерны

A11y · .visually-hidden в 2026 (Дэвид Бушелл)

Фреймворки · React: React Doctor, SVAR Gantt, когда RSC тормозит · Angular: PrimeNG 19→21, Taiga UI CDK v4.72 · Vue: Nuxt на русском, VueUse

Разное и 3D · Ностальгия по вебу 90-х · Штраф Amazon 2,5 млрд за тёмные паттерны · WebGL composite (Three.js) · voxCSS и Mahjong

Читать

Сантиметры против метров: как RTK-контроллеры спасают инженеров от бессмысленных раскопок

Время на прочтение5 мин
Охват и читатели4.3K

 Всем привет! Представьте типичную ситуацию: у вас на руках схема подземных коммуникаций с условными метками. На местности свежеуложенный асфальт, газон и пять потенциальных точек, где нужный колодец может быть в радиусе 5–10 метров — стандартной погрешности GPS. Что делаем? Копаем наугад, тратим часы, портим покрытие, нервничаем.

Проблема не в том, что «карта неверная». Проблема в том, что у нас никогда не было инструмента, чтобы актуализировать ее с точностью до сантиметра. Традиционно такой разрыв закрывался человеко-часами и удачей. Но что делать если у вас под управлением сотни тысяч инфраструктурных объектов в условиях постоянно меняющейся городской среды? 

Меня зовут Оксана Эйнеш, я руковожу направлением «Высокоточное позиционирование» в МТС. И сегодня мы с вами разберем технологию, которая превращает поиск колодца подземной инфраструктуры из лотереи в точную инженерную задачу. 

Речь пойдет о комплексном решении с применением высокоточных ГНСС-контроллеров с поддержкой кинематики реального времени (Real Time Kinematic, RTK). Ниже я расскажу о переходе из плоскости «где-то здесь» к точке «вот здесь».

Читать далее

Как я в одиночку написал полноценное финансовое Android-приложение на Jetpack Compose

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.5K

Это не очередной TODO-лист и не очередной трекер расходов. Это комбайн, в котором живут задачи, заметки, бюджет, аналитика, помодоро-таймер и цели накоплений

Читать далее

Согласованность API по принципу единого источника истины

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели4.8K

Представим ситуацию: идет тяжёлый спринт, вы выполнили кучу задач, написали тонну нового функционала, готовитесь к релизу и вдруг обнаруживайте, что часть фич перестала работать! Идёте разбираться и обнаруживайте, что оказывается бэкендер Вася в последний момент решил переименовать поля в json-е, а вам об этом не сказал!

Ситуация образная, но позволяет быстро обрисовать одну из болей во время разработки. В этой статье я бы хотел рассказать об одном из вариантов её решения в коде с помощью подхода Единого источника истины(Single source of truth).

Читать далее