Обновить

Как стать автором

Telegraph API: CONTENT_TOO_BIG приходит раньше обещанных 64 КБ. Измеряем реальный лимит и разбираем обходной путь

Уровень сложностиСредний
Время на прочтение11 мин

Telegraph API обещает принимать content до 64 КБ, но на практике CONTENT_TOO_BIG прилетает уже на 17-20 КБ. Разбираю, как измерял реальный лимит, при чём тут UTF-8 vs UTF-16 для кириллицы, и каким обходным путём чинил молчаливую деградацию RU-канала.

Читать далее
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

CSS для тех, кто спал и проснулся

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

За последние годы CSS сильно изменился: появились вложенность, новые селекторы, container queries и нормальная работа с темами. В этой статье - краткий разбор ключевых фич, которые позволяют писать меньше костылей и реже тянуть JS.

Проснуться
Всего голосов 19: ↑19 и ↓0+22
Комментарии11

SHA-3 простыми словами

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

В статье рассматриваются избранные места SHA-3 стандарта, относящиеся к анатомии кечак-функции (KECCAK) и, частично, к структуре губчатой функции (sponge function). Не затрагиваются многие другие части стандарта, в частности, описывающие функции с расширенным выходом SHAKE, RawSHAKE.

Стандарт FIPSPUB 202 определяет Secure Hash Algorithm-3 (SHA-3) как семейство функций, оперирующих бинарными данными. Каждая из функций основана на кечак-алгоритме (KECCAK algorithm). Семейство включает четыре криптографические хэш-функции SHA3-224, SHA3-256, SHA3-384, SHA3-512 и две функции с расширенным выходом (extendable-output function, XOF) – SHAKE128 и SHAKE256.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии2

Запускаем Qwen3.6 35B-A3B + opencode локально на RTX 4070 12GB — AI-ассистент для разработки без облака

Уровень сложностиСредний
Время на прочтение4 мин

Я давно слежу за развитием локальных LLM, но всегда упирался в одно и то же — либо модель маленькая и качество не устраивает, либо большая и не влезает в видеопамять. Всё изменилось когда я наткнулся на статью про MoE-модели и параметр -cmoe в llama.cpp.

Расскажу как я запустил Qwen3.6 35B-A3B на RTX 4070 12GB с 32GB RAM, настроил его как AI-ассистент для реального проекта в opencode, и почему теперь эта модель у меня работает постоянно.

Читать далее
Всего голосов 16: ↑16 и ↓0+17
Комментарии25

Моделируй просто! Симулятор космического полёта – «42»

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

У каждого специалиста в своей области есть профильное ПО. Даже для разработки ПО есть соответствующее ПО. И зачастую большинство специалистов не заботит «открытость» такого ПО. Более того, среди специалистов по разработке/моделированию спутников в России немало встречается авторских решений или решений, специально разработанных для конкретной организации. НО! дальше этого предприятия или даже отдела эти решения никуда не выходят.

Поэтому я хочу рассказать про моделирующую среду для анализа динамики полёта космического аппарата (КА) с открытым исходным кодом – «Проект 42» (далее просто «42»), который использую в своей повседневной профессиональной деятельности.

Читать далее
Всего голосов 8: ↑8 и ↓0+9
Комментарии4

Визуализатор структуры адреса на Си для Linux и Termux: Попасть в «Голову» кеш-линии

Уровень сложностиПростой
Время на прочтение3 мин

В 47 мои увлечения стали Си, Radare2 , Биты, Логика, Память. Изучая память зацепился за адреса. На адрес 0x7ffe10b284 можно смотреть бесконечно долго. Трудно сказать с ходу насколько удачно ваши данные легли в память. Влезают они в одну кеш-линию или размазаны по двум. Чтоб не заниматься битовой арифметикой в уме, я написал утилиту на Си для Linux и Termux. Она раскладывает младшие 12 бит адреса на 4 строки визуализации. Теперь сразу видно, попали мы в "Голову" или застряли в "Хвосте" кеш-линии.

Утилита максимально легковесная. Вам не нужны сложные дебаггеры, достаточно gcc. Работает, как на десктопном Linux, так и в Termux на Android. Можно проверить выравнивание даже лёжа на диване.

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии0

Личный опыт: Два собственных блочных шифра (описание и код на C++)

Время на прочтение5 мин

После не совсем удачных экспериментов с публикациями на площадках общего назначения приходится вновь возвращаться к теме описания собственных шифров, наиболее значимыми из которых считаю ESCK-7 и Seal. Оба шифра являются родственными и отличаются только некоторыми деталями, потому основное описание предполагается посвятить шифру ESCK-7, а для Seal указать только принципиальные различия.

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Комментарии2

5 стадий поиска работы в IT

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

18 ноября 2025 меня уволили с позиции ведущего фронтенд‑разработчика. В руках — свежеоформленная IT‑ипотека, в календаре — 6 месяцев, чтобы найти новую аккредитованную компанию, пока льготная ставка не превратилась в рыночную.

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

В этой статье я рассказываю, как прошел путь от самоуверенного «да я за неделю найду» до стадии «может, пойти в курьеры?». Делюсь выводами о том, как сейчас работают (или не работают) отклики, и почему нетворкинг в итоге спас мой семейный бюджет.

Читать далее
Всего голосов 19: ↑16 и ↓3+14
Комментарии25

Асинхронный загрузчик видео на aiogram 3 и yt-dlp: как не положить Event Loop и прикрутить честный прогресс-бар

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

Казалось бы, тема заезженная до состояния покрышки камаза: «сделай бота, который качает ролики». На Хабре уже лежит десяток туториалов, на GitHub — сотни форков. Но если вы хоть раз открывали такой бот в проде — вы знаете, что 90% из них падают на втором пользователе, а оставшиеся 10% честно умирают на видео длиннее 15 минут.

Я полез в органическую выдачу Google, чтобы понять, почему люди вообще ищут Telegram-ботов, а не пользуются веб-сервисами. И выдача, честно говоря, удручает.

Читать далее
Всего голосов 3: ↑1 и ↓2-1
Комментарии4

Просто про волновое сопротивление кабеля

Уровень сложностиПростой
Время на прочтение6 мин

Физическая база простым языком и без нейронок о том, что такое волновое сопротивление кабеля, чтобы наконец стало интуитивно предельно. Откуда оно взялось, где там резистор? Сопротивление меди что‑ли? Возьмём коаксиальный кабель, увидим провод в центре и трубу‑провод вокруг первого. Остальное — изоляция, защита и тому подобное. Хоть изоляция и вносит неиллюзорную долю в параметры, для понимания принципа конкретный вид изоляции не важен.

Почитать про электрончики
Всего голосов 38: ↑35 и ↓3+37
Комментарии114

Неизменяемая архитектура. Практическая проверка кодом. Версия 1, начало

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

«Talk is cheap. Show me the code.»

Недавно мне в руки попала книга «Искусство неизменяемой архитектуры: теория и практика управления данными в распределенных системах». В ней описаны довольно радикальные, но логичные подходы к проектированию: полный отказ от UPDATE и DELETE в пользу INSERT, идентификация сущностей через хеш-суммы и построение распределенных систем без боли.

Чтобы не быть голословным и проверить, работают ли эти концепции в реальном коде, а не только в теории, я написал небольшой тестовый проект. Это не продакшен-решение, а скорее полигон для проверки идей.

В этой статье разберем, как выглядит REST-сервис на Kotlin + Spring Boot, живущий по законам неизменяемости, и к каким результатам это привело.

Читать далее
Рейтинг0
Комментарии1

Solana: Что такое Jito?

Уровень сложностиСложный
Время на прочтение3 мин

Когда про Jito говорят, как про основную MEV-инфраструктуру, это мешает понять суть архитектурного решения. Потому что в общем случае Jito выходит за рамки MEV. И если прорваться через некоторый объем документации, становится понятно, что основная “killer-feature”, которую дает Jito-клиент - это возможность АТОМАРНО исполнить пачку транзакций (до 5 транзакций).

Примечание: “атомарно” значит исполнить или все транзакции из пачки, или ни одной. В классической реализации Solana-ноды такого нет, и, например, отправив Лидеру слота с Agave-клиентом 5 транзакций, вы никак не сможете гарантировать, что они исполнятся последовательно в одном блоке. Между ними всегда могут вклиниться транзакции с повышенной priority fee.

А вот Jito дает прям надежный способ атомарно исполнить пачку транзакций. Именно возможность исполнить пачку транзакций атомарно и открывает большие возможности для извлечения выгоды из ончейн состояния. Например: разного вида ликвидации, backrunning, frontrunning, сэндвич-атаки. Про то, как именно пачка транзакций позволяет извлечь выгоду в каждом из этих случаев, нужно говорить отдельно. Пока просто достаточно понимать, что извлечение MEV становится КАРДИНАЛЬНО эффективней, если у вас есть гарантия свойств атомарности исполнения пачки транзакций.

Читать далее
Всего голосов 1: ↑1 и ↓0+2
Комментарии2

Часы на ВЛИ ИВ-18

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

Почему выбрал VFD и конкретно ИВ-18? Во‑первых, с детства нравились ВЛИ, особенно на всяческих аудио‑/видеомагнитофонах («Маяк-232-стерео», «Электроника ВМ-12» и подобные). Во‑вторых, у меня как раз появилась пара таких «трубок» и, коль скоро с ними «вживую» дела иметь ещё не приходилось, то интересно было их «запустить». В‑третьих, к тому моменту была уже освоена «технология» работы с газоразрядными индикаторами (они же — nixie, ИН-12 и подобные) и выглядело для меня всё как «ну, не должно быть сильно сложнее».

Читать далее
Всего голосов 18: ↑18 и ↓0+22
Комментарии36

Как сделать мини-экран для Умного Дома Яндекс (УДЯ) за 659 рублей?

Уровень сложностиСредний
Время на прочтение15 мин

Если подключить к Яндекс станции кучу датчиков, исполнительных устройств и настроить нужные сценарии, то жить в доме становится значительно приятнее, но каждый раз спрашивать Алису какая температура на улице и открыто ли окно — это неудобно. Хочется, чтобы одним взглядом можно было узнать основные показатели датчиков и оценить текущее состояние Умного Дома Яндекс (УДЯ).

Воодушевившись статьей Уважаемого Вадима @tzirulnicov: «Подключение самодельных устройств к умному дому Яндекса с Алисой» я решил попробовать сделать себе мини‑экран, показывающий текущую температуру на улице и в комнате, содержание в комнате углекислого газа, а также состояние окна, обогревателя и сценария, который автоматически открывает окно когда становится душно.

В отличие от оригинальной статьи все датчики у меня уже есть, так что ничего припаивать я не стал — это просто монитор для моего УДЯ.

Теоретически, кроме покупки SmartTV Ultra от GeekMagic больше ничего не нужно, так как мой скетч можно загрузить через web‑интерфейс прошивки, которая идет «из коробки», а в нем предусмотрено обновление через WiFi (OTA).

Только если загружаемая прошивка не сможет подключиться к Вашему WiFi, то обновлять ее придется «по проводу» — режима AP в моем скетче пока нет, но я планирую его добавить в будущем.

На фотографии результат: на улице +2.8 C, в комнате +24.8 C, углекислый газ: 634 ppm, обогреватель включен, окно закрыто, а сценарий автоматического открытия окна при превышении содержания CO2 — активен.

Читать далее
Всего голосов 13: ↑11 и ↓2+12
Комментарии30

Шифруем ID сетью Фейстеля: защита API без правок в базе

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

Куча API до сих пор светит в URL инкрементные ID — один curl в цикле, и у атакующего вся таблица. Ровно на этом в апреле 2025 погорела APCOA. Разбираю дешёвую вторую линию обороны: шифруем ID сетью Фейстеля. Сорок строк, ни миграций, ни новых зависимостей.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии1

Молодость всё прощает?

Уровень сложностиПростой
Время на прочтение6 мин

Когда ты молод, кажется, что горы по колено и так будет всегда. Сегодня к молодёжи относят людей до 35 лет, и именно в этом возрасте чаще всего живут так, будто ресурс организма бесконечный. Что там насчёт трёх работ (сидячих!), энергетиков, рваного графика и бесконечных «штош, на выходных отосплюсь». 

Современное общество и необходимость задают темп. Но между тем есть стойкое ощущение: организм всё выдержит и «молодость простит»…

Но давайте честно: молодость не прощает. Она просто наказывает не сразу.

За последнее десятилетие у людей 18–44 лет частота инсультов выросла примерно на 15% [1]. Доля инфарктов у молодых пациентов тоже увеличивается. Нет, инфаркт в 30 лет все ещё не стал нормой, но предпосылки для него уже закладываются намного раньше и это проблема уже не только пожилых.

Попробую объяснить почему так происходит, и что с этим делать. 

Читать далее
Всего голосов 16: ↑15 и ↓1+15
Комментарии30

Perl — зря забытый язык программирования?

Время на прочтение11 мин

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

Читать далее
Всего голосов 45: ↑43 и ↓2+53
Комментарии92

Атакуем LLM — дешево, сердито, ИИ-шно

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

Неумолимое и скачкообразное развитие новомодных LLM не оставляет вообще никаких сомнений (лично у меня), что в ближайшее время можно будет засвидетельствовать у малого и среднего бизнеса свою собственную модельку, работающую с БД клиентов, оперирующую внутренней документацией и нарезающую задачи сотрудникам. И вместе с этим у меня возник логичный вопрос: а насколько такое техническое решение будет устойчиво к атакам школьных‑хулиганов/серьезных злоумышленников? Можно ли будет доверить бездушной, но очень смекалистой машине по‑настоящему чувствительные данные в ближайшее время или все‑таки стоит подождать?

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

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии6

Echo Layer: как я пытался встроить приватность в обычную клавиатуру

Уровень сложностиСредний
Время на прочтение13 мин

Привет Хабр! Меня зовут Артур Валиев, и я разработчик небольшого мобильного приложения с названием «Echo Layer».

Меня давно не отпускала одна мысль: почти все разговоры о приватной переписке в какой‑то момент упираются не в шифрование, не в криптографию, не в архитектуру, а в банальную человеческую инерцию. Можно сколько угодно строить красивую систему, можно делать open source, end‑to‑end encryption, писать про zero knowledge и отсутствие серверных логов, но потом ты возвращаешься в реальную жизнь и видишь, что люди всё равно сидят там, где им удобно. В Telegram, в WhatsApp, в VK, сейчас уже и MAX, в корпоративных чатах, в почте, в комментариях, где угодно. И если для приватности нужно сначала всех пересадить в новое приложение, то задача почти обречена.

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

Так Echo Layer и появился. Не как «новый безопасный чат», а как попытка превратить сам ввод текста в место, где может жить приватность.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии4

Labeled break and continue в C# 15 — разбор плохого примера и поиск реального кейса

Уровень сложностиСредний
Время на прочтение4 мин

Всем привет. В последнее время в одной профессиональной соцсети я все чаще стал натыкаться на посты, связанные с dotnet C# тематикой. К сожалению, эти посты в большинстве своем не содержат полезной информации. Скорее всего они создаются для охвата аудитории с целью привлечения трафика на сторонние платформы по продаже курсов для разработчиков. По-моему, этот способ называется "воронка продаж" (поправьте, если я ошибаюсь). Как правило, эти посты затрагивают какую-то не очень сложную тему и содержат примеры кода. Недавно мне попался очередной пост, в котором автор пытался показать пример использования новой фичи labeled break and continue. Это новая фича, которую добавили в C# 15 (dotnet 11). На момент написания она была принята в Working Set, но финального релиза ещё не было. Ниже код, похожий на оригинал из поста. Он разделен на 2 секции: "как делали раньше" и "как сделать используя новый подход":

Стандартный способ:

Читать разбор
Всего голосов 9: ↑7 и ↓2+6
Комментарии6
1
23 ...