Обновить

Базовая защита сервера на Linux

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

Всем привет. Меня зовут Дмитрий Филиппов, я явлюсь разработчиков AI-платформы VEGA chat. В статье хочу поделится личным опытом администрированием серверов, а именно с чего должна начинаться защита сервера послей установки.

Базовая защита — это то, с чего должна начинаться каждая установка сервера на Linux. Без этого ваш сервер может превратится в тыкву, майнинг ферму, а если вы еще и данные users потеряете — большие штрафы могут вас ждать. В этой статье мы обеспечим базовый минимум защиты нашего сервера, чтобы он не стал легкой добычей для интернет-злодеев.

Читать далее

Сервис на базе Telergam

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

В этой статье мы рассказываем о реализованном приложении на базе Telegram Mini-App, которое меняет правила игры на рынке строительных услуг. Цель — создать пространство прямого взаимодействия между заказчиками и исполнителями, где ключевыми факторами успеха станут реальные навыки и качество работы, а не маркетинговые приёмы.

Читать далее

Гайд: как реализовать децентрализованный логин на Go с libp2p

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

Что такое децентрализованная база данных? - это хранилище данных, в котором нет единого сервера.

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

Читать далее

Практическое применение потокового редактора SED

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

Работая с АльтЛинукс 10 я обнаружил, что команда apt-cache show <имя пакета> выводит много дополнительной информации, которая возможно важна для мейнтейнеров, но не представляет ценности для меня. Более того дополнительная информация выглядит как шум и затрудняет анализ данных. Для решения этой проблемы я использовал потоковый редактор sed.

Читать далее

Corel Draw: Как получить доступ к пунктам меню в коде макроса

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

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

Рассмотрим два варианта, которые связаны между собой.

Читать далее

Доказательство гипотезы Коллатца

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

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

Читать далее

Как настроить отправку оповещений Wazuh в Telegram и Bitrix24: полное руководство

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

Wazuh — мощная открытая платформа для мониторинга безопасности, обнаружения угроз и соответствия нормативным требованиям. Но по умолчанию она отправляет алерты только в логи или SIEM-систему. Что делать, если вы хотите оперативно получать уведомления в Telegram и автоматически создавать задачи в Bitrix24 при критических событиях — например, при изменении членства в группе администраторов или блокировке учётной записи?

Читать далее

Кейс, который ломает миф про сезонность на Авито: х3 заявок в нише «Мойки высокого давления»

Кейс на Авито: 240 заявок по 362 рубля, где средний чек товара 90000 рублей.

Работа с производителем моек высокого давления. Россия, лето — традиционный «мертвый сезон». При бюджете 90 000 рублей заказчик получал всего 90 обращений в месяц и считал, что «Авито тут ни при чём, просто сезон провальный».
Мы доказали обратное: за один месяц увеличили количество заявок в 3 раза — при том же бюджете. Цена заявки упала в 3 раза.

Читать далее

Static Factory Methods: оружие Java-разработчика

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

Достаточно писать скучные конструкторы! Пришло время освоить статические фабричные методы — подход, который кардинально изменит ваше представление о создании объектов в Java.

Читать далее

Мнение эколога, голубевода об использовании голубей в качестве биодронов

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

Недавно было опубликовано сообщение о положительных результатах испытания в России голубей-биодронов, которым вживляют чип в головной мозг, вешают на них видеокамеру и заставляют лететь в заданном направлении для наблюдений и разведки. Эколог, голубевод, эксперт “Центра правовой зоозащиты”  Евгений Ильинский рассказывает об этичности и эффективности использования голубей в качестве биодронов.

Насколько этично использование голубей в качестве биодронов?

Читать далее

Вводная статья по инженерному проекту «Дезинтегратор БПЛА/Дрон»

Инженерный проект по борьбе/противодействию бпла/дронам в инженерно-философском духе! С акцентом на ее разработку и реализацию в Российском пространстве (топосе) и культурном коде.

продолжение в следующих публикациях

Функции vs генераторы: производительность, особенности, размер

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

При стандартном подходе используются функции, которые возвращают списки. Допустим, вот такая функция, которая возвращает все степени двойки до 1000:

def degrees_two:

...

Читать далее

AWS Glue расшифровка и конвертирование csv в paraquet

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

Пришла мне задача принимать gpg-зашифрованные csv, расшифровывать их с секретным ключом и паролем из AWS Secrets Manager, а затем сразу конвертировать в parquet, что бы после подключить AWS Athena и не думать о преобразованиях, партициях и так далее. Все должно стартовать само, когда в S3 появляется новый файл.

Читать далее

Record в Java: руководство по лучшей функции, которую вы не используете

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

Устали писать горы шаблонного кода для простых классов данных? equalshashCodetoString, геттеры... Знакомо? Тогда встречайте Records (записи) — возможно, лучшая фича Java, которая сэкономит вам кучу времени и нервов.

Читать далее

Платформы AI-симуляторов: следующий этап тренировки навыков

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

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

Эту новую категорию можно описать как AI-симуляционные платформы. Вместо того чтобы создавать контент, они воспроизводят реальные сценарии, задают динамические вопросы, оценивают ответы и дают структурированную обратную связь. Ценность таких систем — в повторении, а не в замене человека.

Читать далее

Авторизация через Steam на PHP в 2025: Выкидываем LightOpenID и пишем нативный код (PHP 8.1)

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

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

Любой, кто делал магазины скинов, рулетки или просто игровые форумы, сталкивался с задачей: «Сделать кнопку Войти через Steam».

Казалось бы, задача тривиальная. Идем в гугл, пишем php steam auth, и что мы видим?

Читать далее

Как мы с AI создали онлайн-игру «Бункер 7.0» и прошли через все круги ада

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

Разработал полноценную онлайн-игру с голосовым чатом и реалтаймом за несколько месяцев, работая в паре с AI-ассистентом (Claude/Cascade). Деплой на Railway + Vercel, пока 10+ одновременных игроков, и куча неожиданных проблем от «бесконечных циклов на iPhone» до «миграции БД не применяются в Railway».

Стек: React + TypeScript, Node.js, Socket.IO, PostgreSQL, 100ms (голосовой чат), Sentry, Cloudflare R2.

Читать далее

Энди Гроув: человек, который построил Intel и научил Кремниевую долину выживать

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

История Энди Гроув, И уроки менеджмента от CEO Intel

«В каждом успехе уже заложены семена его разрушения. Выживают только параноики».

— Энди Гроув

Читать далее

UV текстурирование куба

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

В статье будет показано как можно наложить простую текстуру на куб (box).

В программировании графики часто используется uv текстурирование. Когда текстура накладывается по координатам на вершины модели. Это работает с разомкнутыми моделями. Но при наложении на замкнутые вроде куба (или цилиндра) возникает проблема. Одна и та же вершина используется для разных плоскостей. И не всегда возможно наложить текстуру как хотелось бы. Можно конечно добавить вершин, и сделать их независимыми, но это лишний расход памяти, и другие проблемы.

Сразу покажу конечный результат. Текстура наложена на куб (box), и со всех сторон выглядит корректно. Но это сработает только для простой текстуры, которая допускает отражение по диагонали (вроде бетона, кирпича). Либо если достаточно только 4 сторон (кроме верха и низа например). Здесь графическая API (в моём случае OpenGl) получает всего 8 вершин с uv координатами каждая. Безо каких-либо хитростей вроде геометрических шейдеров (которые требуют дополнительных операций) и т.д. Т.е. это будет эффективно.

Читать далее

Больше никаких common.json: Как я написал свой CLI для автоматизации i18next в Next.js (и перешел с Gulp на AST)

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

Введение

Каждый, кто делал мультиязычные приложения на React/Next.js, знает эту боль. Ты создаешь новый компонент, пишешь t("Submit Button"), а потом...

Читать далее