Как стать автором
Обновить

SOLID: S — Single-Responsibility Principle

Уровень сложностиПростой

История первого принципа из SOLID берёт своё начало ещё в 1972 году, когда Дэвид Лордж Парнас, канадский пионер в области программной инженерии, выпустил статью под названием «On the Criteria To Be Used in Decomposing Systems into Modules». Она появилась в декабрьском выпуске журнала «Communications of the ACM», том 15, номер 12. В своей статье Парнас сравнивал две разные стратегии декомпозиции и разделения логики на примере простого алгоритма. Вывод статьи заключался в следующем:

Читать далее

COSR: Обучение компактных ИИ математике и коду через курируемое самообучение

Наверняка вы замечали: найти маленькую нейросеть, которая бы действительно точно и надежно решала задачи по математике или генерировала качественный код, ‑ непростая задача. Для сверхбольших моделей появляются методы полностью автономного самообучения, такие как AZR, но их применение к моделям с ограниченным «объемом знаний» и способностей может оказаться неэффективным стартом — им может не хватить «искры» для самостоятельного разгона. С другой стороны, классическая дистилляция, когда маленькая модель просто пытается повторять за «учителем», часто упирается в потолок возможностей этого учителя и не всегда развивает подлинное умение рассуждать.

Что, если решениекроется в умном наставничестве? Представляю концепцию (пока что только идея) — COSR (Curated Objective Self‑play Reasoning ‑ Курируемое Объективное Размышление‑Самообучение). Это подход, где мощная ИИ‑модель выступает в роли интеллектуального Куратора для обучения меньшей модели ‑ Ученика. Куратор не просто делится знаниями, а направляет самообучение Ученика в математике и программировании: он подбирает задачи, адаптируя их сложность под текущие способности и прогресс Ученика, и помогает ему учиться на объективных критериях проверки, предоставляемых независимым Верификатором (например, исполнителем кода или математическим решателем).

Читать далее

Как я решил демоэкзамен по разработке: система учёта партнёров на Flask + PostgreSQL

Уровень сложностиПростой

В этой статье я поделюсь подробным решением практического задания демоэкзамена ГИА по направлению «Разработка, администрирование и защита баз данных». Мы создадим полноценное веб-приложение на Python с использованием фреймворка Flask и базы данных PostgreSQL, реализующее:

учёт партнёров;

расчёт индивидуальной скидки;

просмотр истории продаж;

расчёт необходимого количества материала с учётом параметров продукции и процента брака.

Приложение имеет пользовательский интерфейс, стилизованный в соответствии с руководством по стилю, и демонстрирует применение принципов нормализации БД и модульного программирования. Весь код открыт и сопровождается комментариями.

Читать далее

Как создать сайт самому с нуля: когда no-code и конструкторы замена разработке, а когда — нет

Уровень сложностиПростой

Пока разработчики пишут фронт с анимациями и прорабатывают бэк, маркетологи уже запустили три лендинга и провели A/B тест. Это сила no-code платформ: вы можете собрать сайт, не залезая в код вообще. Спорно? Да. Эффективно? Тоже да.

No-code — это подход к созданию цифровых продуктов без написания кода. За несколько часов можно собрать лендинг, MVP интернет-магазина или прототип сервиса, не привлекая разработчиков. И правда, конструкторы вроде Tilda или Mobirise позволяют самостоятельно запустить сайт за день, а не за спринт. Это не альтернатива продакшену, а способ быстро протестировать идею и сэкономить бюджет на стадии гипотез. Цель этой статьи — разобраться, когда no-code уместен, кому он помогает и почему нельзя просто «потом всё доработать».

Читать далее

Как мы боролись с DDoS-атакой (и победили)

Уровень сложностиСредний

Кажется, у нас появился настоящий «фанат», причём настолько страстный, что решил обрушить наш сайт массированной DDoS‑атакой. Сначала мы даже улыбнулись — ну, внимание приятно. Но серверу было не до шуток.

Несмотря на то, что у нас стоял «Оранжевая защита», включение режима JS Challenge не помогло — часть запросов всё равно проходила, и сервер ложился от нагрузки. Пришлось действовать решительно.

Читать далее

ShieldPHP: многоуровневая защита от DDoS и брутфорс-атак для PHP-сайтов

Уровень сложностиСредний

ShieldPHP — это модульная система безопасности для веб-сайтов на PHP, которая обеспечивает многоуровневую защиту от различных типов атак, включая DDoS, брутфорс и сканирование уязвимостей. Рассмотрим её технические особенности и принципы работы.

Читать далее

Взаимосвязь между тестированием и маркетингом: как обеспечить успешный запуск продукта

Уровень сложностиПростой

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

Читать далее

Анализ атаки на Loopscale: манипуляция ценой PTUSDe и её последствия

Уровень сложностиСредний

Исследую атаку на Loopscale: как манипуляция ценой PTUSDe через недостаточную проверку данных оракула позволила вывести миллионы USDC и SOL, что стало причиной этого. И так ли безопасны не openSource проекты.

Читать далее

Анализ уязвимостей POS-терминалов

Уровень сложностиПростой

Пару дней назад стало интересно как работают POST терминалы и какие уязвимости в них бывают. Не советую воспринимать эту статтю как руководство по взлому, скорее просто как поверхностный взгляд на тему.

POS-терминалы (Point of Sale) — это специализированные компьютеры для обработки платежей. Несмотря на их критическую роль, многие из них работают на устаревших ОС (Windows CE, Embedded Linux). Как раз в этих системах и стоит искать уязвимости.

Читать далее

Технологии моей образовательной платформы: осознанный выбор или случайность?

Уровень сложностиПростой

Выбор технологий для создания чего-то по-настоящему мощного играет ключевую роль в развитии каждого проекта. Сегодня я хотел бы поделиться, почему я сделал выбор в сторону PostgreSQL, в чем причина замены Vue на React или почему используется WebSocket вместо REST API.

Читать далее

Оптимизация производительности сайта на Spring Boot: как это влияет на SEO

Уровень сложностиПростой

Привет, коллеги! Меня зовут Сирин Имамов, я backend-разработчик на Java, и сегодня разберём, как оптимизация Spring Boot-приложения может не только ускорить ваш сервис, но и улучшить его ранжирование в поисковиках. Да, SEO — это не только фронтенд и контент. Медленный бэкенд убивает пользовательский опыт, а Google это прекрасно видит.

Читать далее

Шпаргалка по обнаружению и удалению руткитов ядра Linux

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

Поскольку большинство современных руткитов используют ftrace, почему бы не отключить его?

Читать далее

Как один проект 1С обернулся для моей компании долгами в 72 млн рублей

Уровень сложностиПростой

Меня зовут Калашников Роман, я основатель и руководитель компании «Фобизнес», 17 лет официальный партнёр 1С, более 20 лет в ИТ, десятки внедрённых проектов, в том числе федерального масштаба.

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

Читать далее

Магия шанса в играх: от истории вероятности до ваших игровых механик

Уровень сложностиПростой

В детстве я не замечал, как иногда именно одно-единственное случайное событие меняет ход всей игры: выпавшая вовремя шестёрка в настольных «Монополии» или неожиданное пополнение арсенала редкой пушкой в видеоигре. Позже, уже работая геймдизайнером, я понял: шанс — не просто инструмент, а живая субстанция, питающая увлечение, непредсказуемость и радость победы.

Я решил глубоко погрузиться в тему случайности и вероятности, чтобы помочь вам.

Читать далее

Стрелочные функции JS, быстро, просто и без проблем

Уровень сложностиСредний

Стрелочные функции JS, быстро, просто и без проблем!

1. Стрелочные функции: arguments, hoisting

2. Работа с контекстом

3. Методы присваивания контекста

4. Обработчик событий

Читать далее

Выгрузка данных в Python: JSON/XML/Excel/CSV

Уровень сложностиПростой

Аннотация
Статья «Выгрузка данных в Python» — это практическое руководство по работе с ключевыми форматами данных в современных проектах. Вы узнаете:

Как выбирать инструменты под разные сценарии:

JSON для интеграции с веб-сервисами

XML для сложных древовидных структур

Excel для бизнес-отчетности

CSV для кросс-платформенной совместимости

Лучшие практики работы с популярными библиотеками:

pandas для табличных данных

xml.etree.ElementTree для парсинга XML

json и кастомные энкодеры

Как избежать критических ошибок:

Обработка кодировок (автоопределение через chardet)

Защита от уязвимостей (XXE-атаки в XML)

Валидация входных данных

🔧 Бонус: Готовые примеры кода, таблицы сравнения форматов и чек-лист выбора инструмента под задачу.

Для кого:

Python-разработчиков

Data Analyst и Data Engineer

Всех, кто работает с импортом/экспортом данных

Результат: Научитесь уверенно работать с любыми форматами данных, оптимизируете процессы выгрузки и избежите типичных ошибок.

Читать

Когда аквариум становится хакером: нестандартные инциденты кибербезопасности и чему они нас учат

Уровень сложностиПростой

Каждый специалист по информационной безопасности регулярно сталкивается с типичными проблемами: фишинг, вирусы, неверно настроенные доступы. Но иногда появляются инциденты, которые выходят за рамки обыденного — такие, что становятся легендами ИБ-сообщества.

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

Читать далее

Как я ускорил сборку проекта на 25% с помощью кэширования зависимостей

Уровень сложностиПростой

Всем привет! Меня зовут Иван, я backend-разработчик. В этой статье хочу поделиться опытом оптимизации процесса сборки в одном из наших проектов на Node.js. Возможно, мой опыт поможет вам сократить время CI/CD pipeline.

Читать далее

Параллельные миры Python: threading, multiprocessing и asyncio в бою

Уровень сложностиСредний

Или как не запутаться в многозадачности и выбрать правильный инструмент

Вы пишете код на Python и столкнулись с медленной работой приложения? Возможно, вы используете не тот подход для параллельных задач. Один разработчик заменил threading на asyncio и ускорил API в 5 раз, другой — применил multiprocessing и сократил время обработки данных с часов до минут. Но как понять, что подойдёт именно вам? Давайте разберёмся, как работают эти инструменты, и главное — когда их стоит (или не стоит) применять.

Узнать лучшее