Обновить

Разработка

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

Грани полиморфизма React: паттерн FACC

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

Привет, с вами снова Костя из Cloud.ru. Мы поговорили про паттерн as для типа безопасного полиморфизма и asChild для чистой композиции. Но сегодня поговорим о подходе, который даёт такую гибкость в вариативном дизайне, что дизайнеры будут гордиться вами - FACC (Function as Child Component).

Читать статью

Стилизация, часть 2: Границы стилизации. Гротеск

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

Что называют стилем и стилизацией? Какие течения у стилизации существуют и как классифицировать визуальный стиль рендеров? Можно ли уравнять гиперреалистичный шутер Bodycam и бродилку про глиняных человечков The Midnight Walk, пиксельный выживач Rain World и стратегию Heroes of Might and Magic? Отчасти на этот вопрос мы уже ответили в первой части. Кстати, эту самую первую часть с общей историей развития стилизации в играх и биологическими предпосылками восприятия можете почитать здесь.

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

Читать далее

Неугомонный VasyGrek: F6 изучила атаки злоумышленника в августе-ноябре 2025 года

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

В июле 2024 года был опубликован блог об исследовании специалистами Threat Intelligence компании F6 активности VasyGrek и его сотрудничестве с продавцом ВПО Mr.Burns. После публикации F6 VasyGrek прекратил сотрудничество с этим поставщиком вредоносных программ.

Аналитики департамента киберразведки F6 продолжили отслеживать атаки злоумышленника, который не прекращал свою активность и осуществлял новые фишинговые рассылки в адрес российских организаций. Целью киберпреступника был доступ к конфиденциальным данным для их дальнейшего использования. Как правило, VasyGrek применял вредоносное ПО, разработанное пользователем хак-форумов PureCoder. Также специалисты F6 заметили, что в некоторых атаках в дополнение к ВПО от PureCoder шел шифровальщик Pay2Key.

В новом блоге аналитики F6 рассказали об инструментах и атаках VasyGrek в августе-ноябре 2025 года с техническими деталями и индикаторами компрометации.

Читать далее

Как мы будем тестировать человекоподобных роботов (когда они станут реальностью)

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

Калифорнийский стартап 1X, бросив вызов таким гигантам, как Boston Dynamics, начал принимать предзаказы на своего человекоподобного робота NEO.

Это одна из первых серьезных заявок на создание коммерческого андроида для дома. NEO, управляемый голосом и искусственным интеллектом, обещает автоматизировать рутину: убираться, мыть посуду, стирать и даже общаться.

Однако за громким анонсом скрывается менее заметная, но критически важная деталь: на начальном этапе большую часть сложных задач за робота будет выполнять удаленный оператор, наблюдающий за происходящим через камеры NEO.

Генеральный директор 1X Бернт Бёрних прямо заявляет, что для достижения истинной автономии необходимо собрать огромный массив данных из реальных домов. Это означает, что первые владельцы NEO по сути станут участниками масштабного полевого эксперимента. Их жилища превратятся в тестовые полигоны.

Этот подход иллюстрирует фундаментальный вызов, стоящий перед всей индустрией: как можно теоретически построить систему тестирования для машин, которым предстоит работать в самой сложной и непредсказуемой среде — в человеческом доме?

Когда инженеры только начинают переносить роботов из лабораторий в мир людей, их ждет столкновение с абсолютно новой реальностью. Цена ошибки здесь измеряется не в багах в логах, а в разбитых вазах, затопленных соседях, травмах и подорванном доверии.

Первоначальный энтузиазм быстро сменяется осознанием: тестирование робота — это проверка его способности взаимодействовать с хаотическим миром. И самый сложный вопрос — не «как тестировать?», а «что именно и в каком объеме нужно тестировать?».

Читать далее

API, который растёт вместе с вами: за кулисами GitVerse

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

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

Привет, на связи Виктор Степанов, лид одной из core-команд ИИ-платформы для работы с кодом GitVerse. Сегодня я хочу поделиться коротким рассказом о том, как мы начали проектировать и разрабатывать публичный API для нашей платформы.

Читать далее

Live Updates на Android: где макеты врут, a SDK ставит границы

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

Весной 2025 года Google представила Live Updates, аналог Live Activity в iOS. Мы быстро запушили продактов — «нам такое надо!» — и потащили фичу в Android-приложение Додо Пиццы.

Но всё оказалось не так просто — мы столкнулись с неполной документацией, расхождениями представлений дизайнеров Google и разработчиков этого SDK, и не только. В общем, запасайтесь попкорном. Сегодня расскажем обо всех нюансах в реализации и тестировании Live Updates.

Читать далее

Мы так привыкли к Disaster Recovery у VMware, что разработали свою

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

Пожар в ЦОДе, авария на подстанции, разорванный во время ремонта кабель между площадками — таких инцидентов за последние годы хватает. Например, в конце этого сентября пожар в государственном дата-центре Южной Кореи парализовал сотни госсервисов и уничтожил свыше 800 терабайтов данных без резервных копий. 

Единственная реальная защита от таких сценариев — геораспределенные инсталляции с Disaster Recovery (DR). Система автоматически перекидывает нагрузку на резервную, если основная упала. Большинство российских ИТ-инфраструктур виртуализированы, сервисы работают в виртуальных машинах, и заказчикам нужны DR-сценарии именно для виртуализации. Поэтому мы в Orion soft разработали модуль DR для собственной платформы виртуализации zVirt. Он обеспечивает программную репликацию на уровне гипервизора (без агентов внутри гостевых ОС) и аппаратную на уровне СХД. 

Я Александр Гавриленко, директор технического пресейла zVirt. В этой статье расскажу, как мы воспроизвели привычную функциональность VMware и что адаптировали в решении под специфику российского рынка.

Читать далее

iOS или Android: чей замок крепче?

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

Сегодня трудно представить жизнь без смартфона. Мы доверяем ему личную переписку, фотографии, платежные данные и доступы к финансовым и медицинским сервисам. Но задумываетесь ли вы, насколько надежно защищены ваши данные?

Ответ во многом зависит от операционной системы — именно она определяет уровень вашей безопасности. Ваши личные «сокровища» защищают две основные системы: iOS от Apple и Android от Google. Их принципы работы различаются, поэтому отличаются и слабые места, и способы защиты.

В этой статье мы не будем советовать, какой смартфон выбрать. Зато подробно сравним защиту iOS и Android по ключевым параметрам: от безопасности и удобства до экосистемы и функциональности.

Читать далее

Специальные функции-члены в C++

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

Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специфичных. Это девятая статья из серии, список предыдущих статей приведен в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Данная статья посвящена специальным функциям-членам.

В C++ жизненный цикл экземпляра класса/структуры/объединения (объект, представляемый в коде переменной) начинается с инициализации, то есть задания его начального состояния. Далее, почти всегда, объект копируется, выполняются присваивания или их перемещающие аналоги. Эти операции необходимы для работы функций, контейнеров, алгоритмов. Финальной точкой жизненного цикла объекта является его уничтожение. Именно для поддержки этих операций в C++ и предназначены специальные функции-члены.

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

Итак, попробуем рассказать о специальных функциях-членах максимально подробно.

Читать далее

ActiveRecord: опасная магия

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

В Ruby‑разработке ActiveRecord давно стал стандартом: он интуитивно понятен, встроен в Rails и позволяет быстро проводить CRUD‑операции. По мере роста проекта его «удобство» нередко начинает оборачиваться скрытыми проблемами.

Читать далее

Делаем простой фитнес-трекер на React Native + Expo

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

Лето уже давно позади, зима на носу, а значит — самое время начинать подготовку к следующему лету. Для многих это означает одно: попытку выбраться из состояния «тюленя» хотя бы в состояние «тюленя, который слегка похудел».

Чтобы совместить полезное с полезным, заодно соберём небольшое приложение — простой трекер веса и тренировок — и посмотрим, как на практике работает мультиплатформенная разработка на React с Expo. Спойлер: почти то же самое, что и обычная разработка на React — и, похоже, именно она окончательно забивает гвоздь в гроб Dart/Flutter и прочих попыток конкурентов сделать вид, что React — это страшный сон, который можно забыть.

Читать далее

Борьба с дисбалансом классов. Oversampling

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

Привет, Хабр! На связи KozhinDev и ml-разработчик Приходько Александр. Это третья статья в цикле публикаций по теме борьбы с проблемой дисбаланса классов в машинном обучении. В первой статье мы обсудили актуальность данной проблемы в машинном обучении, а также сравнили методы борьбы с ним, без внесения изменений в сами данные: изменение весов классов и порога принятия решения моделью. Во второй статье мы сравнивали undersampling-методы, которые удаляли представителей частого класса.

В данной части мы протестируем методы балансировки данных методом oversampling из библиотеки imblearn. Суть данного метода заключается в том, что мы пытаемся бороться с дисбалансом классов генерируя данные для редкого класса. Мы рассмотрим разные способы генерации таких данных и протестируем их на синтетических данных.

Читать далее

Интеграционное тестирование: от теории до боевого опыта

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

Это схема, которая описывает типы объектов в вашей системе и возможные отношения между пользователями и этими объектами (ролями, функциями защиты и привилегиями).

Классическая ситуация:

«Я данные отправил!»

«А я не получил!»

«А они зависли где-то, потому что формат не тот!»

Пример из практики: комплексный проект по рефакторингу системы управления доступами. Интеграция приложения по управлению доступами на основе ролей и привилегий (это наша Новая система) с другими информационными системами (ИС) в контуре предприятия (например, управление учетными записями, авторизация пользователей и прочие).

Читать далее

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

За рекордными отчётами Nvidia скрывается афера на 2 триллиона долларов, и вот что от нас прячут…

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

«Много говорят о пузыре ИИ, - отметил CEO Nvidia Дженсен Хуанг во время недавнего отчёта о прибылях за третий квартал. - Мы видим иную картину».

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

То, что все, кажется, упускают из виду, так это то, что спрос на кирки и лопаты вовсе не означает, что тюльпаномания или золотая лихорадка не готовы вот-вот лопнуть. Точно так же спрос на чипы ИИ, которые продаёт Nvidia, не означает, что нет пузыря, который вот-вот разрушительно схлопнется.

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

Пристегните ремни - погружение будет глубоким!

Читать далее

Почему переводы по номеру телефона до сих пор ломаются: инженерный разбор бытовой проблемы, которую мы недооцениваем

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

Система быстрых платежей (СБП) существует достаточно давно, но бытовые переводы «по номеру телефона» всё ещё регулярно вызывают ошибки, путаницу и лишние действия.
Если открыть комментарии под любой статьёй на эту тему — гарантированно найдёшь реплики вида:

«Но ведь можно просто скопировать контакт? Или показать QR из банка. Зачем вообще что-то ещё?»

Проблема в том, что в инженерных рассуждениях мы часто видим идеальные сценарии, а в реальной жизни всё намного менее стерильно.

В этой статье — разбор, почему бытовые переводы по номеру на практике всё ещё далеки от идеала, с точки зрения UX, безопасности, разрозненности банковских реализаций и человеческого фактора.
И почему альтернативные способы (vCard, контакт, QR из приложений банков) не всегда закрывают эту бытовую рутину.

Здесь нет рекламы и нет призывов пользоваться каким-то конкретным инструментом.

Это исследование проблемы, которая всплывает каждый день у людей вне IT-пузыря.

Читать далее

Форматируем строку по-человечески: C++ и его <format>

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

Когда-то давным-давно (то есть до C++20) мы форматировали вывод либо по-старинке через printf, либо используя громоздкие стримы ввода-вывода из <iostream>. Оба подхода, мягко говоря, не очень. printf работал шустро и лаконично, но требовал строгого соответствия типов, забудешь правильный %d или %s в формате, и получишь неопределённое поведение вплоть до падения программы. Компиляторы иногда предупреждают о несоответствиях, но полностью проблему не решают (особенно если форматируемая строка не литерал). Кроме того, printf не умеет выводить пользовательские классы, только примитивы.

Сейчас ситуация изменилась. В C++20 завезли библиотеку <format>, современный подход к форматированию строк, сочетающий лаконичность printf с безопасностью iostream. Инструмент называется std::format и объявлен в заголовке <format>. По сути, это адаптация популярной библиотеки fmt.

Читать далее

Книга: «Solutions architect: Архитектура и проектирование ИТ-решений. 3-е изд.»

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

Привет, Хаброжители! Овладейте искусством дизайна архитектур и станьте успешным архитектором решений. Книга, написанная опытными техлидами AWS Саурабхом Шриваставой и Ниланджали Шривастав, выходит за рамки традиционных руководств для подготовки к сертификации. В ней вы найдете подробную аналитику и описания передовых методов, предназначенных для удовлетворения конкретных потребностей клиентов и решения проблем, с которыми сталкиваются современные архитекторы решений.

Читать далее

Хакеры начинают фишинг и выигрывают у Google

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

У мошенников нет ничего святого! Хакеры взялись за Google: подделка подписей теперь не обязательна, ведь можно заставить Google подписывать фишинговые письма валидным DKIM самостоятельно. Если раньше опытный ИБ-специалист мог сходу разобраться, где фишинговое письмо, а где — нет, сейчас это сделать в разы сложнее. И дело вовсе не в популярных нейронках, изощренном социальном инжиниринге или слитых базах.

Несем вам горячий кейс о том, как мошенники научились злоупотреблять настройкой OAuth-приложений, используя официальные инструменты Google для отправки поддельных писем от no-reply@accounts.google.com.

Спойлер: хотя Google уже устранил возможность вставлять произвольный текст в название OAuth-приложений, сама техника повторного использования легитимной DKIM-подписи никуда не делась. На её основе по-прежнему можно реализовать сценарии, позволяющие обходить DKIM-аутентификацию.

Читать далее

Транзакции в InnoDB: разбираемся с уровнями изоляции и блокировками

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

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

В этой статье давайте разберём несколько распространенных заблуждений и на примерах посмотрим, как на самом деле работают транзакции.

Читать далее

Этот CSS пора оставить в прошлом

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

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

В беседах с коллегами я всё чаще замечаю, что многие не в курсе последних фишек CSS. Конечно, у каждого свои причины. Кто-то погряз в повседневной рутине. Кому-то просто неинтересно, что там нового происходит в мире CSS. А кто-то годами сидит на десятилетних подходах и чувствует себя прекрасно.

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

Давайте посмотрим, что у меня получилось.

Читать далее