Pull to refresh
2

User

2
Subscribers
Send message

Важен ли интеллект в промышленном дизайне?.. или как спалить клиента

Level of difficultyEasy
Reading time6 min
Reach and readers19K

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

Сегодня мы разберём печальный кейс когда промдизайн делают за копейки, а анекдот:
— Что должен делать сотрудник за такую зарплату?
— Ничего, и даже немножечко вредить.
походу нифига не анекдот.
Но зачем вредить конечному клиенту?
Я то тут при чём? А мои дети? :-\

Прихватите огнетушитель...

Пожалуй, все что надо знать о ТСПУ

Level of difficultyEasy
Reading time19 min
Reach and readers95K

Как российский ТСПУ понимает, какой трафик блокировать? Почему одни VPN-протоколы работают, а другие перестают подключаться? чем анти-DPI отличается от обычного туннеля? Какой протокол и клиент выбрать?

Читать далее

Доверенное ПО: Минцифры наконец опубликовало требования

Level of difficultyMedium
Reading time10 min
Reach and readers6.5K

13 октября Минцифры опубликовало проект постановления с требованиями к доверенному ПО. Впервые ИТ-рынок узнал, что ведомство хочет в нем увидеть.

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

Читать далее

Бэкап SQLite прошёл integrity_check, но потерял 90% данных: проверяю пять способов копирования

Reading time10 min
Reach and readers5.7K

Для небольшого проекта мне понадобилось настроить резервное копирование SQLite. База используется постоянно, останавливать приложение ради каждого бэкапа не хотелось. При этом копия должна сохранять все подтвержденные транзакции. Я рассматривала несколько вариантов: обычное копирование файлов, SQLite Backup API и VACUUM INTO.

Я начала с самого простого способа — скопировать только app.db. В скрипте для этого использовалась функция shutil.copy2(), то есть обычное файловое копирование. Копия создалась без ошибок, а проверка PRAGMA integrity_check вернула ok. Однако из ста подтвержденных заказов в копии оказалось только десять.

Читать далее

Как я запустил Telegram-бота в браузере, не переписывая его обработчики

Level of difficultyMedium
Reading time8 min
Reach and readers8.1K

У меня было несколько ботов на python-telegram-bot: команды, inline-кнопки, состояния, работа с базой и внешними сервисами. Затем понадобился веб-интерфейс с тем же поведением.

Переносить обработчики в отдельный HTTP API означало бы поддерживать две реализации одного сценария. Встраивать Telegram Web App тоже не подходило: пользователь должен был работать в обычном браузере, без Telegram.

Я пошёл другим путём: браузер притворяется Telegram на входе, а локальный transport-слой — Telegram Bot API на выходе. Исходные обработчики получают настоящие объекты Update и вызываются через штатный Application.process_update(). В этой статье покажу, как устроен прототип, на каких границах он держится и что сломалось после первых перезапусков.

Читать далее

Эволюция NGINX в 2026 году: как опенсорс‑версия получила функции коммерческого Plus

Level of difficultyEasy
Reading time16 min
Reach and readers12K

NGINX давно стал стандартом для базовых инфраструктурных задач: терминации HTTPS, раздачи статического контента и балансировки трафика. Однако за 2026 год веб-сервер совершил технологический рывок в своей основной ветке, который выводит его далеко за рамки классического обратного прокси.

В новых OSS-версиях появились инструменты, которые раньше требовали покупки коммерческой подписки (NGINX Plus от F5) или развертывания стороннего ПО и сложных связок с Lua. Майский релиз 1.31.0 принес нативную поддержку HTTP Forward Proxy. А сентябрьское обновление 1.31.5 окончательно закрепило этот триумф, добавив полноценный динамический Control API, модуль для нативного извлечения данных из JSON и предикатные location. Параллельно с этим произошли большие изменения в скриптовании: в июне проект njs перешагнул отметку релиза 1.0.0, полностью сменив старый кастомный движок на современный QuickJS.

Читать далее

Реализация fail2ban на MikroTik RouterOS

Level of difficultyEasy
Reading time3 min
Reach and readers12K

Сразу отмечу, что fail2ban нельзя использовать как полноценный инструмент защиты доступа к управлению маршрутизатором. Доступ к службам управления по‑умолчанию должен быть закрыт фаерволом из всех сетей за исключением management. И, возможно, с адресов из локального «белого списка». Fail2ban, применяется к management‑интерфейсу на случай, когда злоумышленник уже получил доступ в подсеть управления. Либо в подсети управления оказался вирус, троян, нелояльный пользователь. Также бывали случаи, когда трафик управления мог пропускаться из‑за ошибки в правилах фаервола. Итак, fail2ban, это скорее последний уровень защиты управления маршрутизатором.

Для начала создаем скрипт, который будет выполнять работу по поиску и извлечению адреса из тела сообщения системы «$message». Помещаем скрипт в системную библиотеку скриптов /system scripts на маршрутизаторе и присваиваем скрипту название «loginfail2ban».

Читать далее

Прячем сервер за прокси. Часть 1: iptables и его пределы

Reading time10 min
Reach and readers8.9K

Как спрятать реальный IP сервера?

В первой части серии разбираемся с iptables: как устроены таблицы и цепочки netfilter, что происходит с пакетом на пути от клиента до бэкенда и как с помощью DNAT/SNAT организовать простой прокси-узел. Покажем рабочую конфигурацию для HTTPS, TCP и UDP, разберём типичные проблемы с FORWARD, conntrack и маршрутизацией, а главное — выясним, почему простой NAT не позволяет одновременно скрыть IP сервера и сохранить реальный IP клиента. В конце сравним подход с nftables и разберём, в какой момент iptables перестаёт подходить для цепочки прокси.

Читать далее

Я посчитал, во сколько обходится свой сервер вместо облака в 2026 году

Level of difficultyEasy
Reading time15 min
Reach and readers43K

В этом году платить за зарубежные облака из России стало почти невозможно. С апреля закрыта оплата сервисов Apple, Google Play не принимает платежи с 2022 года, а Notion отключил российских пользователей ещё в сентябре 2024 года. В комментариях к таким новостям всегда советуют одно и то же: поднимите свой сервер и забудьте о подписках. Я решил проверить этот совет на цифрах. Поднял на своём компьютере Immich, Nextcloud, Vaultwarden и AFFiNE, замерил, сколько им нужно памяти, и сравнил стоимость за пять лет с Яндекс 360 и Облаком Mail. Цены собраны 28 сентября 2026 года. Облако выиграло не на любом объёме: есть граница, после которой свой сервер экономит до 175 тысяч рублей за пять лет. Где она проходит и почему её почти не сдвигает даже б/у железо, разберу по порядку.

Считаем

Зарубежные нейросети для транскрибации аудио

Level of difficultyEasy
Reading time16 min
Reach and readers5.7K

Привет, дорогой Хабр!

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

Читать далее

50 минут руками — 5 минут автоматически. Или как я майнер удалял

Reading time8 min
Reach and readers8.7K

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

Вэтой истории я расскажу, как столкнулся с таким майнером и потратил почти час на ручное удаление, как это позже удалось автоматизировать, и как уже из этого зародилась утилита по устранению таких майнеров.

Читать далее

Не дайте РКН заблокировать ваш VPS

Reading time2 min
Reach and readers52K

Примерно с декабря 2025г. для защиты рунета от угроз используют Active Probing: сканирование IPv4 адресов интернета для сбора информации о запущенных на них сервисах.
Примеры сервисов: веб‑сервер NGINX, SSH сервер, ГOСT‑VРN сервер.
При обнаружении запрещенных сервисов IP‑адрес может быть заблокирован на территории РФ.

Точного списка запрещенных сервисов в открытом источнике нет, но самая частая причина блокировок IP‑адресов в последнее время — средства потенциального oбхoдa блoкирoвoк.

22 сентября 2026г. была волна блокировок некоторых IP‑адресов на территории РФ. Узнайте подробнее ниже и проверьте свой IP‑адрес на нарушения.

Читать далее

Native AOT заставил меня переписать весь .NET проект

Level of difficultyEasy
Reading time8 min
Reach and readers12K

Мне хотелось, чтобы знакомство с HydraScript выглядело просто: скачал интерпретатор, запустил скрипт. Сомнительно предлагать человеку сначала установить подходящий .NET Runtime ради моего языка программирования.

Переход на Native AOT поначалу казался правкой .csproj. Включил настройку, опубликовал бинарник, пошёл дальше. На практике пришлось переписать всё. Досталось даже интеграционным тестам. А в процессе рефакторинга ещё и пропали логи.

Читать далее

Написал менеджер буфера обмена на Rust, потому что Win+V меня добил

Level of difficultyMedium
Reading time7 min
Reach and readers7.5K

Есть встроенный в Windows Win+V. Я честно пользовался им года полтора. А потом однажды скопировал кусок кода, полез искать то, что копировал двадцать минут назад, и понял, что искать там нечем. В Win+V нет поиска. Совсем. Список, по которому ты скроллишь глазами. Двадцать пять элементов, картинки вперемешку с текстом, и ты листаешь колёсиком, как ленту, пытаясь вспомнить, как выглядела нужная строчка.

Ещё он не помнит историю между перезагрузками так, как мне хотелось, теряет то, что я закреплял, и живёт своей жизнью где‑то в облаке аккаунта Microsoft, о чём я стараюсь не думать.

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

Читать далее

Бенчмаркая LINQ: подстава с OrderBy — одно условие и полная сортировка

Level of difficultyMedium
Reading time8 min
Reach and readers9.8K

Одни вызовы после OrderBy проходят набор один раз, другие приводят к полной сортировке. По коду разницы не видно.

Давайте проверим счётчиком обращений к компаратору — на четырёх машинах и четырёх рантаймах.

Читать далее

Черный экран смерти: как прочитать дамп за пять минут вместо переустановки Windows

Level of difficultyEasy
Reading time12 min
Reach and readers9.3K

Синего экрана смерти больше нет. Точнее, экран‑то есть, просто не синий, а черный. Поменяли его еще в 24H2, заодно убрав и грустный смайлик, и QR‑код. Остались только стоп‑код да имя сбойного драйвера. Вот только компьютеры на Windows как уходили в незапланированный ребут, так и уходят. И цвет фона тут вообще ни на что не влияет. Значит, надо разбираться, что вся эта тарабарщина значит.

Читать далее

Как вернуть файлы с неисправного SSD

Level of difficultyEasy
Reading time2 min
Reach and readers9K

Бесплатная свободно распространяемая многофункциональная Win64 утилита Easy Disk Checker за авторством ведущего инженера лаборатории восстановления данных "Хардмастер" Артёма Макарова, о которой уже писалось на Хабре тут, или здесь, доросла до Major Update версии 6.0.0 где помимо глубокой переделки UI интерфейса появилась перспективная разработка модуля работы с неисправными SSD дисками.

Читать далее

Как разблокировать средства на криптобирже в 2026 году

Reading time9 min
Reach and readers6.6K

Использование криптовалютой обычно считается навыком скорее техническим, хотя основная «техническая» часть там заканчивается на открытии собственного кошелька или заведении аккаунта на криптобирже. Но оживает криптовалюта, из набора цифр превращаясь в цифровые активы, только в транзакциях — то есть, во взаимоотношениях, по обе стороны которых всё так же находятся люди. Особенно когда речь идёт о криптобиржах. Это различие может казаться абстрактным, но становится реальным, как только возникают проблемы, когда понимание характера проблемы необходимо для верного решения: сustodial‑модель означает, что контроль передан бирже в момент, когда средства оказались на её адресе. А, значит, и в решении криптография уже не играет никакой роли — всё решает обычный комплаенс‑процесс, устроенный не сильно иначе, чем в банке. С той лишь разницей, что банк хотя бы обязан по закону объяснить причину отказа в операции, а биржа, зарегистрированная где‑нибудь на Сейшелах, в большинстве случаев — нет.

Читать далее

Как массово преобразовать DOCM в DOCX: готовое решение

Level of difficultyMedium
Reading time6 min
Reach and readers5.4K

Вот было у Вас такое, что на вход реализованному на Python автоматизированному процессу, принципиально не использующему приложение Microsoft Word и COM‑объекты, нет‑нет да и придет файл с расширением docm? Ведь фактически, чтобы обращаться к текстовым файлам, на текущий момент в экосистеме Python существует только одна более‑менее функциональная (и, что греха таить, бесплатная) библиотека — python‑docx. А она позволяет работать только с docx‑файлами...

Читать далее

SPF, DKIM и DMARC на примере обычного письма: как работает email‑аутентификация

Level of difficultyMedium
Reading time21 min
Reach and readers12K

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

Привет, Хабр! Меня зовут Пётр Пахомов, я продуктовый менеджер CDP Sendsay, и я заметил, что в Рунете сложно найти статью, которая бы понятно рассказывала про SPF-запись, DKIM-подпись и DMARC-политику. Поэтому постараюсь на простом примере объяснить логику их работы, чтобы email-аутентификация перестала выглядеть набором непонятных аббревиатур.

Разобрать на письме →
1
23 ...

Information

Rating
Does not participate
Location
Россия
Registered
Activity