Часто ли бывает, что вы скачали программу с зеленого магазина, залили на VirusTotal, увидели 0 угроз и пошли открывать? Так вот, вирустотал это не детектор вирусов, а фраза 0 угроз после сканирования буквально НИЧЕГО
Как работает VirusTotal и почему его очень ЛЕГКО обойти?
Читать далееВ современных фронтенд-приложениях работа с файлами встречается постоянно: загрузка изображений, экспорт CSV, превью и интерактивные редакторы. Но когда файлы увеличиваются в размере или их количество растет, начинаются проблемы: интерфейс подвисает, расход памяти увеличивается, а браузер иногда просто падает.
В этом руководстве мы разберем шесть практических приемов работы с Blob, которые помогают обрабатывать файлы эффективно и безопасно:
правильное создание Blob
разбивка больших файлов на части (chunks)
сжатие и конвертация изображений
реализация надежных превью файлов
экспорт данных в виде загружаемых файлов
управление памятью во избежание утечек Blob URL
Цель руководства — сделать работу с файлами быстрой, стабильной и готовой к продакшну.
Читать далееЕжегодный список Fintech 100 от CB Insights - это не просто подборка «перспективных стартапов», а срез того, как меняется сама архитектура финансовых сервисов. В выпуске 2025 года особенно заметен сдвиг от пользовательских приложений к инфраструктурным решениям: платежным слоям, embedded finance, AI-first системам управления рисками, автоматизации бэк-офиса и институциональному DeFi.
В этой статье мы разберем карту Fintech 100 по ключевым сегментам, которые выделяет CB Insights, и внутри каждого блока подсветим компании, выглядящие наиболее перспективно с точки зрения технологий, бизнес-модели и рыночного контекста. Это не рейтинг и не инвестиционная рекомендация, а попытка понять, где именно сегодня формируется финтех следующего поколения.
Читать далее2025 вышел богатым на игровые релизы. Геймеры получили Clair Obscur: Expedition 33, Kingdom Come: Deliverance II, Split Fiction, Battlefield 6, Death Stranding 2, Borderlands 4, Hollow Knight: Silksong, переиздание Doom и другие новинки. А вот GTA VI, увы, не получили, хотя именно эта премьера от Rockstar должна была затмить собой вообще все. Что ж, давайте же посмотрим, что нам обещает игровая индустрия в 2026.
Читать далееВо многих случаях при разработке веб-сервисов и сайтов возникает необходимость в поиске готовых UI-компонентов — как для вдохновения, так и для ускорения работы над интерфейсом. Подобные решения будут полезны всем, кто занимается веб-дизайном и веб-разработкой.
В статье представлена подборка ресурсов с качественными и интересными UI-компонентами. Список будет дополняться по мере появления действительно достойных сайтов и сервисов.
Читать далееАвтоматизированную упрощённой систему налогообложения (АУСН) подают как максимально простой и удобный режим: никаких деклараций, минимум отчётности, автоматический расчёт налогов. Но с другой стороны, может возникнуть ощущение, что речь идёт не просто о новом специальном налоговом режиме, а о принципиально иной модели налогового контроля.
Я хочу посмотреть на АУСН именно с этой точки зрения: как на систему, к которой государство целенаправленно стремится, и которая, по сути, может стать (а по моим наблюдением уже становится) будущим налогового администрирования для малого бизнеса, а в перспективе и для среднего.
Для тех, кто читает меня впервые: за плечами почти 12 лет работы в ФНС, поэтому обозревать этот налоговый спецрежим я буду с позиции бывшего налоговика.
Читать далееРазбираем архитектуру, не пугаем. LLM — полезный инструмент при адекватном использовании. Но если марафоните сутками — это сигнал.
Кризисная линия: 8-800-2000-122 (анонимно, 24/7).
Читать далееЗнаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания new? И почему все современные рекомендации так настаивают на конструкторах?
Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать далееЗнаю, знаю... Прочитав заголовок, хочется голосом волка из мультфильма "Жил был пёс" сказать - "Шо, опять?" . Ведь битва этих подходов давно закончилась и разработчики Spring уже поставили точку.
Но недавняя публикация в одном довольно крупном Telegram-канале заставила меня вернуться к этому вопросу. В качестве главных аргументов против field injection там приводились лишь сложность изоляции в тестах и неудобство создания экземпляров для unit-тестов.
И хотя с этими пунктами не поспоришь, у многих разработчиков и не только начинающих, остаются вопросы: каковы реальные последствия для самого объекта? Можно ли считать его полноценным сразу после создания new? И почему все современные рекомендации так настаивают на конструкторах?
Поиск ответов показал мне, что аргумент о тестах лишь верхушка айсберга. В глубине, куда я Вас сегодня приглашаю заглянуть, скрываются куда более фундаментальные вопросы принципов объектно-ориентированного дизайна, гарантий Java Memory Model и уважения к жизненному циклу объекта.
Читать далееСегодня мы поговорим про такую, казалось бы, простую и привычную штуку, как функция drop в языке Rust. Что может быть банальнее?
Создали переменную, и в конце области видимости она сама очистится. RAII за нас делает всю работу, а мы просто выдыхаем и не боимся утечек памяти. Но не все так радужно!
Иногда даже маленькая функция drop() способна подбросить неприятный сюрпризик и буквально поломать вашу программку, причём сделать это тихонько и незаметно. С чего бы вдруг такая базовая вещь приводит к ошибкам?
Читать далееМеня зовут Виталий и я пишу уже который год самую большую книгу по математике для 4–11 классов, а так же автор поста (рекомендую почитать) о ней. Пишу я ее в LaTeX и считаю, что современный учебник не должен быть черно-белым, а так же должен быть удобен для использования и учеником и учителем. Здесь я собрал базовые фишки, которые я использую (что-то чаще, что-то реже). Надеюсь, вы найдете что-нибудь полезное для себя:)
Постараюсь все подробно описать, но не гарантирую идеального кода. Компиляция в основном с помощью pdflatex, но есть места, где требуется lualatex. Для себя я сделал около 35 стилевых файлов для использования в преамбуле, но тут я написал полный код чтобы в каждом случае можно было запустить "из коробки".
Кстати, в следующем посте будут еще <<круче>> функции.
Читать далееBase64 — это схема кодирования двоичных значений в текст, преобразующая произвольные двоичные данные (например, изображения, файлы или любые байтовые последовательности) в безопасную печатную ASCII-строку, состоящую из 64-символьного алфавита (A–Z, a–z, 0–9, +, /). Браузеры применяют эту схему в JavaScript для встраивания двоичных данных непосредственно в код/HTML или для передачи двоичных данных в виде текста.
Недавно в браузерах появились удобные и безопасные функции для обработки Base64: Uint8Array.toBase64() и Uint8Array.fromBase64(). Хоть у них и есть множество параметров, смысл их сводится к кодированию и декодированию.
При кодировании они берут 24 бита из входных данных и разделяют их на четыре сегмента по 6 бит, и каждое 6-битное значение (в интервале от 0 до 63) соотносится с конкретным символом из алфавита Base64: первые 26 символов — это буквы A-Z в верхнем регистре, следующие 26 — a-z в нижнем, затем идут цифры 0-9 и, наконец, символы «+» и «/» в качестве 62-го и 63-го символов. Если длина входных данных не кратна трём байтам, то в качестве заполнителя используется знак «=».
Насколько же быстро могут работать эти функции?
Читать далееКак работает чистый код?
Ниже моё облыжное мнение о том, почему «Чистый код» — чистой воды инфоцыганщина, и почему если вы слышите в аргументации собеседника эти слова — нужно бежать, ведь разговаривать с зомби бессмысленно.
Click to reveal the Clean RantПроник в банк не через вайфай и не через фишинг — а просто пристроился к аудиторам с улицы. Никто не спросил имени. Никто не проверил. А через час уже сидел у них в сети с рабочим пропуском. Как это случилось — и почему «следовать инструкции» не спасло — в новой статье.
Читать далееЗа 5 лет работы в B2B и B2C сегментах у телеком-провайдеров я столкнулся с одной из проблем: абоненты годами сидят на архивных дорогих тарифах или пользуются услугами операторов, которые не идут на уступки, не снижают цены на тарифы, пользователи просто не знают, что в их же доме есть альтернативные провайдеры с тарифами более выгодными для них.
Я решил объединить свой опыт в телекоме с навыками в программировании. Так появилась идея по парсенгу тарифов. Цель — создать инструмент, который автоматически мониторит провайдеров, избавляя пользователей от ручного сравнения и помогая им находить оптимальные условия по тарифу.
Сейчас я работаю аналитиком БД, параллельно изучаю архитектуру, построение данных. Решил начать проект с проектирования структуру на PostgreSQL по схеме "Звезда". Таблицей фактов у меня будет таблица со связью города с провайдером, таблицы измерений – таблица с информацией о тарифах, городами и провайдерами.
Читать далееС инженерной точки зрения поиск работы — это процесс с низкой энтропией. Есть входящий поток данных (JSON с вакансиями) и есть необходимость отправить ответный сигнал (POST-запрос с откликом). Задача кажется тривиальной для автоматизации: написал парсер, настроил cron, пошел пить кофе.
Однако, если вы попробуете автоматизировать отклики на крупных job-board платформах (особенно на hh.ru) в 2026 году, вы столкнетесь с серьезным противодействием. WAF (Web Application Firewall), анализ TLS-отпечатков, поведенческая биометрия и теневые баны — это реальность, которая убивает скрипты на requests за пару часов.
В этой статье разберем архитектуру решения, которое позволяет автоматизировать процесс отклика, используя подходы RPA (Robotic Process Automation), мимикрию под поведение пользователя (Human Mimicry) и LLM для обхода смысловых фильтров.
(Дисклеймер: Статья носит исследовательский характер. Мы не призываем нарушать правила площадок, а разбираем технические методы эмуляции браузера).
Читать далееРазработка с ИИ-ассистентами часто напоминает поездку с талантливым, но забывчивым штурманом. Он отлично знает карту (код), но постоянно забывает пункт назначения (бизнес-задачу) и пройденный маршрут (контекст).
Мы привыкли работать в режиме "Prompt & Pray": написали длинный промпт, получили код, внесли правки. Но на дистанции сложной фичи контекст размывается. Агент начинает галлюцинировать, терять детали или переписывать одно и то же. Проблема не в модели, а в отсутствии долгосрочной памяти и четкого контракта.
В этой статье я расскажу, как превратить хаотичный диалог с Cursor в структурированный инженерный процесс. Мы объединим два инструмента:
OpenSpec - чтобы зафиксировать "что и зачем мы делаем" (Spec-Driven Development).
Beads - чтобы управлять тем, "как и в каком порядке" это выполнять (граф задач).
Cursor - как среду, которая связывает их воедино.
Если вы устали от того, что ИИ теряет нить повествования на середине рефакторинга, этот подход для вас.
Читать далееПрактическое руководство по построению сервиса перехвата медленных запросов в StarRocks: правила kill и пороги (full table scan, scan rows/bytes), анализ execution plan, интеграции с Grafana и Feishu, SQL-схемы и YAML-конфигурация для продакшена.
Читать далееВсё началось с вопроса коллеги: "А GigaChat вообще можно к n8n прикрутить?"
Мы посмотрели в список встроенных интеграций n8n. OpenAI — есть. Anthropic — есть. Mistral, Groq, Ollama — пожалуйста. GigaChat — а вот и нет.
"Ну значит нельзя", — сказал бы нормальный человек и пошёл дальше...
Читать далееНе скажу за всех, но периодически вспоминать нюансы по сборке образа и тратить на это время бесит. Пусть будет туториал.
В руках у меня оказалась невзрачная черная коробочка — KM8p, сердцем которой бился восьми ядерный кристалл s912, с двумя гигабайтами оперативной памяти и восемью гигабайтами встроенного хранилища. Задача — вдохнуть в нее жизнь, установив легковесную графическую среду xfce, единственную, что под силу этой скромной оперативе.
Мой путь лежал через дистрибутив armbian, версию 26.02.0-trunk. Но это был не простой установочный образ, а целый лабиринт, полный не очевидных ловушек и правил, будто составленных загадочным архитектором.
Первый закон: Запрет на чужие земли.
Систему нельзя было разворачивать где попало. Только там, откуда она сама же и загрузилась — на том же самом блочном устройстве, где уже смонтирован корень '/'. Попытка нарушить это правило грозила погружением в хаос.
Второй закон: Чистота перед творением.
Перед каждым новым актом сборки требовалось ритуальное очищение. Следовало безжалостно стереть временные каталоги: ./cache, ./.tmp, ./output, ./userpatches. Будто стирая следы прошлых попыток, ты даешь пространству для новой магии.
Третий закон: Власть не для корня.
Собирать следовало не под всесильным root, а под основным, смертным пользователем. И файловая система для этого действа предписывалась только ext4 — проверенный временем фундамент.
Четвертый закон: Свобода от докера.
Мне не потребовался Docker. Вместо этого, в определенный момент, когда на экране начинал тикать обратный отсчет, от меня ждали лишь одного: вовремя нажать 'Enter', подтверждая свое присутствие и готовность.
Продолжаем, разговор.