[{"categories":null,"description":"Сервис продвижения вакансий в офлайн каналах. Каталог с просчётом стоимости объявлений и автоподбором рекламных модулей, фильтрами. Умный поиск по носителям и географии. Реализован личный кабинет с медиапланами, выпиской счетов, перепросчётом позиций.","permalink":"https://mikhail-yudin.ru/portfolio/reklamakadram/","tags":null,"title":"Реклама Кадрам"},{"categories":null,"description":"Один из самых крупных проектов. Поиск и фильтр по десяткам параметров на Sphinx, работа с данными от CRM (xslt), поиск объектов на карте по выбранной зоне, движок для просмотра квартир в 3D, Vue + Vuetify.\n","permalink":"https://mikhail-yudin.ru/portfolio/annp/","tags":null,"title":"Сайт АН \u0026laquo;Начало Перемен\u0026raquo;"},{"categories":null,"description":"Плавная вертикальная навигация слайдами, адаптив, заявки с выпиской счетов и сохранением истории.","permalink":"https://mikhail-yudin.ru/portfolio/narujhka/","tags":null,"title":"Сайт наружной рекламы"},{"categories":null,"description":"Устраняем даблклики на сайтах","permalink":"https://mikhail-yudin.ru/notes/antidoubleclick/","tags":null,"title":"Антидаблклик"},{"categories":null,"description":"Примеры сигналов, на которых можно проверить точность приёмников (например RTL-SDR) и откалибровать их.","permalink":"https://mikhail-yudin.ru/notes/signaly-dlya-kalibrovki-priemnika/","tags":null,"title":"Сигналы для калибровки приёмников"},{"categories":null,"description":"","permalink":"https://mikhail-yudin.ru/blog/hardware/explay-l88-internals/","tags":null,"title":"Внутренности плеера Explay L88"},{"categories":null,"description":"Прошиваем рацию в Termux без компа и интернета","permalink":"https://mikhail-yudin.ru/notes/kak-proshit-uv-k5-s-andoid/","tags":null,"title":"Как прошить uv-k5 с андроида"},{"categories":null,"description":"Собранные общепринятые обозначения в текстовых интерфейсах, консоли","permalink":"https://mikhail-yudin.ru/notes/tui-oboznacheniya-v-tekstovom-interfeise/","tags":null,"title":"TUI: обозначения в текстовом интерфейсе"},{"categories":null,"description":"Опыт работы с радиостанцией Baofeng UV-10R, она же Baofeng TR-818UV","permalink":"https://mikhail-yudin.ru/notes/baofeng-uv-10r-plus-opyt-raboty/","tags":null,"title":"Baofeng UV-10R+, опыт работы"},{"categories":null,"description":"Оставлю себе здесь заметки про работу с GNURadio. Чтобы быстро вспомнить как быть с sample rate и прочим =)","permalink":"https://mikhail-yudin.ru/notes/gnuradio-obschee/","tags":null,"title":"Общие заметки по GNURadio"},{"categories":null,"description":"Про приём на разных диапазонах, разные плюшки =)","permalink":"https://mikhail-yudin.ru/notes/quansheng-uv-k5-opyt-raboty/","tags":null,"title":"Опыт работы с радиостанцией Quansheng UV-K5"},{"categories":null,"description":"Decoding digital audio on Android using termux with SDR tools adn SDR++","permalink":"https://mikhail-yudin.ru/notes/dsd-decode-on-android/","tags":null,"title":"DSD on Android"},{"categories":null,"description":"Следим за событиями через логи и выполняем действия по ним","permalink":"https://mikhail-yudin.ru/notes/sledim-za-logami/","tags":null,"title":"Следим за логами"},{"categories":null,"description":"Making possible to get microphone input on proot distros.","permalink":"https://mikhail-yudin.ru/notes/termux-proot-distro-two-way-sound/","tags":null,"title":"Two way sound in Termux with proot-distro"},{"categories":null,"description":"Заметка по способам лучшего приёма на HanRongDa HRD-747","permalink":"https://mikhail-yudin.ru/notes/hrd-747-opyt-raboty-s-priyomnikom/","tags":null,"title":"Опыт работы с приёмником HRD-747"},{"categories":null,"description":"Делаем превью для фото с добавлением заблюренного фона по краям","permalink":"https://mikhail-yudin.ru/notes/blurred-bg-resize/","tags":null,"title":"Размытый фон по краям при изменении размера изображения"},{"categories":null,"description":"Устраняем отправку дублей запросов по даблкликам на ссылках и кнопках (JQuery)","permalink":"https://mikhail-yudin.ru/notes/ustranyaem-dvoinoi-klik-po-ssylkam/","tags":null,"title":"Убираем двойные клики по ссылкам и кнопкам"},{"categories":null,"description":"Список интересных частот для радиолюбителей","permalink":"https://mikhail-yudin.ru/notes/interesnye-radio-chastoty/","tags":null,"title":"Интересные радиочастоты"},{"categories":null,"description":"Таблицы суточных норм потребления витаминов и минералов","permalink":"https://mikhail-yudin.ru/notes/sutochnaya-norma-vitaminov-i-mineralov/","tags":null,"title":"Суточная норма витаминов и минералов"},{"categories":null,"description":"Собираем бинарник со статически прилонкованными библиотеками","permalink":"https://mikhail-yudin.ru/notes/go-build-static-binary/","tags":null,"title":"Как сбилдить статически бинарник в Go"},{"categories":null,"description":"Инструкция как прошить recovery не используя компьютер и второе устройство.","permalink":"https://mikhail-yudin.ru/notes/kak-proshit-recovery-bez-kompyutera-i-vtorogo-ustroistva-ispolzuya-adb-i-termux/","tags":null,"title":"Шьём recovery без ПК"},{"categories":null,"description":"Видео не проигрывается в браузере тегом video? У меня есть вариант решения этой проблемы.","permalink":"https://mikhail-yudin.ru/notes/video-v-podderzhivaemom-formate-i-mime-tipe-ne-najdeno/","tags":null,"title":"Исправляем метаданные видео"},{"categories":null,"description":"Быстро удаляем все записи DNS из Cloudflare","permalink":"https://mikhail-yudin.ru/notes/paketnoye-udalenie-dns-zapisei-s-cloudflare/","tags":null,"title":"Пакетное удаление DNS записей Cloudflare"},{"categories":null,"description":"Encode URL using shell script","permalink":"https://mikhail-yudin.ru/notes/bash-urlencode/","tags":null,"title":"Bash urlencode"},{"categories":null,"description":"Узнаём частоту употребления слов в проекте just for fun","permalink":"https://mikhail-yudin.ru/notes/bystriy-podschet-chastoty-slov-v-kode/","tags":null,"title":"Быстрый подсчёт частоты слов в коде"},{"categories":null,"description":"Чистим своп без перезапуска системы","permalink":"https://mikhail-yudin.ru/notes/chistka-svopa-bez-perezagruzki/","tags":null,"title":"Чистка swap"},{"categories":null,"description":"Вытаскивает биграммы (N-граммы) из текста в порядке частоты использования","permalink":"https://mikhail-yudin.ru/notes/bigram-extractor/","tags":null,"title":"Экстрактор биграмм"},{"categories":null,"description":"Получение списка классов и функций верхнего уровня из кода Python для получения аутлайна пакета.","permalink":"https://mikhail-yudin.ru/notes/vivod-klassov-i-funkciy-python/","tags":null,"title":"Вывод списка классов и функций Python"},{"categories":null,"description":"Быстрый генератор случайных IP адресов глобальной (WAN) сети","permalink":"https://mikhail-yudin.ru/notes/bystryi-generator-globalnih-ip-adresov/","tags":null,"title":"Генератор глобальных IP адресов"},{"categories":null,"description":"Ищем самые длинные слова в коде проекта just for fun","permalink":"https://mikhail-yudin.ru/notes/poisk-dlinnyh-slov-v-proekte/","tags":null,"title":"Поиск длинных слов в коде"},{"categories":null,"description":"Быстрое сканирование локальной сети и вывод отсортированного списка IP.","permalink":"https://mikhail-yudin.ru/notes/nmap-poluchit-spisok-ip-v-lokalnoi-seti/","tags":null,"title":"NMAP получить список IP в локальной сети"},{"categories":null,"description":"Найти потанцевально SQL injection уязвимые места и начать править их в VIM","permalink":"https://mikhail-yudin.ru/notes/poisk-potencialno-uyazvimogo-k-sql-injection-php-koda/","tags":null,"title":"Поиск уязвимого кода в php (пример)"},{"categories":null,"description":"Парсим сайты в одну строку. Лень писать код для получения содержимого страниц сайта? Пользуйте Parsee =)","permalink":"https://mikhail-yudin.ru/blog/frontend/parsee_prostoi_vkusniy_parser_saitov/","tags":null,"title":"Parsee - простой вкусный парсер сайтов"},{"categories":null,"description":"Простейший способ создать динамически изменяемую фавиконку сайта при помощи javascript","permalink":"https://mikhail-yudin.ru/notes/dinamicheskaya-ikonka-sayta/","tags":null,"title":"Динамическая иконка сайта (favicon)"},{"categories":null,"description":"Примеры микроразметки по стандарту schema.org для SEO и сниппетов в поисковой выдаче.","permalink":"https://mikhail-yudin.ru/notes/mikrorazmetka-dlya-sayta/","tags":["код","оптимизация","schema"],"title":"Микроразметка для сайта"},{"categories":null,"description":"Великая точка g: как искать текстовые вхождения и делать замену, волшебный оператор поиска.","permalink":"https://mikhail-yudin.ru/notes/vim-poisk-po-tekstu-i-zamena/","tags":null,"title":"VIM поиск по тексту и замена"},{"categories":null,"description":"Устраняем повторы, дублирование нажатий, дребезг контактов клавиатуры в Linux программным способом.","permalink":"https://mikhail-yudin.ru/notes/drebezg-kontaktov-klaviatury/","tags":null,"title":"Устраняем дребезг контактов клавиатуры [Linux]"},{"categories":null,"description":"Пример простой, но работающей адаптивной типографики. Не нужно знать много о типографике чтобы сверстать удобочитаемый текст.","permalink":"https://mikhail-yudin.ru/notes/web-tipografika-dlya-razrabotchikov/","tags":null,"title":"Адаптивная веб типографика для разработчиков"},{"categories":null,"description":"Хотите проверить как будут выглядеть символы шрифта и ищете пример текста (панграммы)? Здесь найдёте символы и иконки, а так же сможете проверить различные лигатуры.","permalink":"https://mikhail-yudin.ru/notes/symbols-font-check/","tags":null,"title":"Символы для проверки шрифтов"},{"categories":null,"description":"Сниппеты сокращений emmet. Шпаргалка (cheatsheet) для быстрой вёрстки при помощи Emmet. Верстаем целые страницы одной строкой за несколько секунд.","permalink":"https://mikhail-yudin.ru/notes/emmet/","tags":["код","оптимизация","emmet"],"title":"Emmet \u0026mdash; Вёрстка на максималках"},{"categories":null,"description":"Ускоряем сайт, доводим показатели PageSpeed, Lighthouse до 100%. Ускоряем фронтенд и бэкэнд.","permalink":"https://mikhail-yudin.ru/blog/frontend/checklist-optimizacii-web-prilozheniya/","tags":null,"title":"Чеклист оптимизации скорости загрузки веб-приложения ✓"},{"categories":null,"description":"Оставлю себе и другим на память, стоит ли менять заводскую термопасту на отечественную КПТ-8 если ноутбук стал сильно греться","permalink":"https://mikhail-yudin.ru/blog/hardware/stoit-li-menyat-termopastu-processora-noutbuka/","tags":null,"title":"Стоит ли менять термопасту процессора ноутбука на КПТ-8"},{"categories":null,"description":"Опыт перехода фронтенд веб-разработчика на модальный редактор VIM с IDE от JetBrains. Почему, зачем и как.","permalink":"https://mikhail-yudin.ru/blog/frontend/perehod-s-phpstorm-ili-idea-na-vim/","tags":null,"title":"Переход с PHPStorm или Intellij IDEA на VIM"},{"categories":null,"description":"Ускоряем работу VIM для рабты по SSH и в tmux. Быстрый скроллинг, быстрое переключение буферов","permalink":"https://mikhail-yudin.ru/blog/linux/optimizaciya-i-uskorenie-vim/","tags":null,"title":"Оптимизация и ускорение редактора VIM"},{"categories":null,"description":"Как создать свою статусную строку для VIM без плагинов","permalink":"https://mikhail-yudin.ru/blog/linux/statusnaya-stroka-vim-bez-plaginov/","tags":null,"title":"Статусная строка VIM без плагинов в 5 строк"},{"categories":null,"description":"Простейший способ возвращать неэкранированный юникод в Lumen посредством middleware.","permalink":"https://mikhail-yudin.ru/blog/backend/json-unescaped-unicode-i-pretty-print-lumen-middleware/","tags":null,"title":"Lumen middleware для UNESCAPED_UNICODE и PRETTY_PRINT"},{"categories":null,"description":"Подсвечиваем активные ссылки на Vanilla JS. Просто и эффективно.","permalink":"https://mikhail-yudin.ru/blog/frontend/podsvetka-aktivnyh-ssylok-javascript/","tags":null,"title":"Подсветка активных ссылок на чистом JavaScript"},{"categories":null,"description":"Работая с текстовыми шаблонами для SEO например, встаёт задача использовать шаблоны строк, данные которых должны браться из массива.","permalink":"https://mikhail-yudin.ru/blog/frontend/renderim-tekstoviye-shablony-po-dannym-iz-massiva/","tags":null,"title":"Рендер текстовых шаблонов по данным из массива PHP"},{"categories":null,"description":"Онлайн блокнот с сохранением в Local Storage, поддержкой форматирования и историей.","permalink":"https://mikhail-yudin.ru/projects/notepad/","tags":null,"title":"Блокнот онлайн"},{"categories":null,"description":"Способы облегчить себе жизнь работая по SSH на удалёнке. Настраиваем удалённый доступ через постоянный реверс тоннель, монтируем файловую систему через SSHfs.","permalink":"https://mikhail-yudin.ru/blog/linux/rabotaem-udalyonno-po-ssh-na-karantine/","tags":null,"title":"Работаем удалённо по SSH на карантине"},{"categories":null,"description":"Просто миленькая центрированная вёрстка + иконки. Оптимизировано для бесшовного перехода между страницами.","permalink":"https://mikhail-yudin.ru/portfolio/b2b-region/","tags":null,"title":"B2B сайт"},{"categories":null,"description":"Чтобы сайт отображался одинаково во всех браузерах используйте normalize.css. Расскажу где скачать полную версию и лайт версию для топовых браузеров =)","permalink":"https://mikhail-yudin.ru/blog/frontend/normalize-css-protiv-reset-css/","tags":null,"title":"Битва титанов: normalize.css против reset.css"},{"categories":null,"description":"Главная страница выполнена с галереей на гридах (css grid), адаптив.","permalink":"https://mikhail-yudin.ru/portfolio/piramida/","tags":null,"title":"Сайт для РА \u0026laquo;Пирамида\u0026raquo;"},{"categories":null,"description":"Плавная горизонтальная навигация слайдами, адаптив.","permalink":"https://mikhail-yudin.ru/portfolio/albatros/","tags":null,"title":"Сайт для РА \u0026laquo;Альбатрос\u0026raquo;"},{"categories":null,"description":"При компиляции библиотек или утилит порой возникают ошибки, связанные с несовместимостью опций компилятора или их недостаточностью для сборки. Здесь описал быстрый способ устранить ошибки и заставить работать библиотеки несовместимые с ОС Android","permalink":"https://mikhail-yudin.ru/blog/android/termux-resolve-compile-troubles/","tags":null,"title":"Фикс ошибок компиляции библиотек в Termux"},{"categories":null,"description":"Создадим ключ для доступа к серверу SSH чтобы входить на сервер без пароля. Это безопаснее и быстрее.","permalink":"https://mikhail-yudin.ru/blog/linux/zalit-ssh-klyuch-na-server/","tags":null,"title":"Быстрый способ создать и залить SSH ключ на сервер"},{"categories":null,"description":"Хочется постоянный доступ к Termux по ssh, но нет прямого доступа к смартфону или планшету по сети? Задачу решим используя домашний сервер или сервиса для создания ssh тоннелей.","permalink":"https://mikhail-yudin.ru/blog/android/persistent-termux-access-through-ssh-tunnel/","tags":null,"title":"Постоянный доступ к Termux через ssh тоннель"},{"categories":null,"description":"В 2015 году писал CSS стиль для stylish, для подсчёта изображений без атрибута alt, чтобы видеть где и сколько забыл проставить.","permalink":"https://mikhail-yudin.ru/blog/frontend/css-noalt-external-link-counter/","tags":null,"title":"CSS ищет баги в SEO: картинки без alt и внешние ссылки"},{"categories":null,"description":"Собрал подборку стандартных шрифтов CSS. Стандартные веб шрифты ускоряют загрузку страницы и делают шрифты более привычными для глаз.","permalink":"https://mikhail-yudin.ru/blog/frontend/most-recent-variant-of-css-system-font-families/","tags":null,"title":"Системные шрифты для веб 2019"},{"categories":null,"description":"Смена раскладки онлайн с английского на русский и с русского на английский","permalink":"https://mikhail-yudin.ru/projects/text-layout-change/","tags":null,"title":"Сменить раскладку онлайн с английского на русский и наоборот"},{"categories":null,"description":"Сделал Jekyll календарик с использованием Liquid template engine и CSS grid system","permalink":"https://mikhail-yudin.ru/blog/frontend/jekyll-calendar-css-grid/","tags":null,"title":"Jekyll календарь на чистом Liquid template engine"},{"categories":null,"description":"В детстве очень любил простую игру, где нужно уничтожать блоки одного цвета, чтобы очистить экран. Как начал заниматься изучением HTML5 canvas, решил реализовать её.","permalink":"https://mikhail-yudin.ru/blog/frontend/html5-canvas-block-destruction-game/","tags":null,"title":"Игра про уничтожение блоков с использованием HTML5 canvas"},{"categories":null,"description":"Очень простой, минимальный файл сброса стилей minireset.css, чтобы сбросить все стили к одному стандарту.","permalink":"https://mikhail-yudin.ru/blog/frontend/minimalniy-reset-css/","tags":null,"title":"Минимальный файл сброса стилей minireset.css"},{"categories":null,"description":"Песочница и крутой редактор Markdown для Android. Расскажу, зачем и как я использую Epsilon Notes.","permalink":"https://mikhail-yudin.ru/blog/android/epsilon-notes/","tags":null,"title":"Живая разработка в Epsilon Notes"},{"categories":null,"description":"История о том, как я запорол тачскрин на своём ZOPO zp980+ и в итоге сделал программатор, прошил тач и больше так не баловался =)","permalink":"https://mikhail-yudin.ru/blog/hardware/proshivka-touchscreen-ft5316/","tags":null,"title":"Прошивка тачскрина ft5316"},{"categories":null,"description":"Выделил для себя самые полезные приложения для Android с мощным функционалом, без которых мне тяжело обходиться","permalink":"https://mikhail-yudin.ru/blog/android/polezniye-prilozheniya-android/","tags":null,"title":"Самые полезные приложения для Android"},{"categories":null,"description":"Как я начал использовать семантическую вёрстку и стал улучшать пользовательский опыт при помощи семантических тегов HTML5","permalink":"https://mikhail-yudin.ru/blog/frontend/semanticheskaya-verstka-sayta/","tags":null,"title":"Семантическая вёрстка сайта"},{"categories":null,"description":"Способы оптимизации изображений для Веба при помощи утилиты convert библиотеки ImageMagick","permalink":"https://mikhail-yudin.ru/blog/frontend/imagemagick-convert-optimization-snippets/","tags":null,"title":"Оптимизация изображений для Веба при помощи ImageMagick"},{"categories":null,"description":"В определённый момент у Вас возникло подозрение, что именно браузер Google Chrome тормозит, а не система? При открытии новых вкладок всё становится ещё хуже и дошло до того, что пользоваться невозможно? Эта статья поможет Вам самим достаточно легко устранить причины.","permalink":"https://mikhail-yudin.ru/blog/lifehacks/google-chrome-tormozit/","tags":null,"title":"5 причин почему Google Chrome тормозит — советы программиста"},{"categories":null,"description":"Having troubles with STM32f103 ADC using DMA, solved by introducing timer for external triggering","permalink":"https://mikhail-yudin.ru/blog/hardware/stm32f103-adc-with-dma/","tags":null,"title":"STM32f103 ADC with DMA"},{"categories":null,"description":"Долго возился с подключением DMA на STM32f103, в итоге удалось завести следующим образом","permalink":"https://mikhail-yudin.ru/blog/hardware/stm32-ili9341-spi-with-dma/","tags":null,"title":"STM32 ILI9341 SPI with DMA"},{"categories":null,"description":"How to get it work","permalink":"https://mikhail-yudin.ru/blog/linux/acer-aspire-v5-122p-alsa-mpd/","tags":null,"title":"Acer Aspire v5 122p alsa, mpd"},{"categories":null,"description":"Процедура получения и установки различных linux утилит одним из простых способов.","permalink":"https://mikhail-yudin.ru/blog/android/android-shell-scripting-part-2/","tags":null,"title":"Android shell scripting. Part 2."},{"categories":null,"description":"Если возникло желание развернуть linux shell окружение на Вашем устройстве, можно воспользоваться приёмами, описанными далее.","permalink":"https://mikhail-yudin.ru/blog/android/android-shell-scripting-part-1/","tags":null,"title":"Android shell scripting. Part 1."},{"categories":null,"description":"Игра про уничтожение блоков с использованием HTML5 canvas","permalink":"https://mikhail-yudin.ru/projects/block-destruction-game/","tags":null,"title":"Игра про уничтожение блоков"},{"categories":null,"description":"Информация обо мне как о веб-разработчике.","permalink":"https://mikhail-yudin.ru/resume/","tags":null,"title":"Веб-разработчик Михаил Юдин \u0026mdash; моё резюме"},{"categories":null,"description":"Обо мне, моя биография, интересы, увлечения и хобби.\n","permalink":"https://mikhail-yudin.ru/about/","tags":null,"title":"Веб-разработчик Михаил Юдин \u0026mdash; обо мне"},{"categories":null,"description":"Никто не забыт. Ничто не забыто.","permalink":"https://mikhail-yudin.ru/hall-of-fame/","tags":null,"title":"Зал славы"},{"categories":null,"description":"Контакты для связи. Резюме и дополнительную информацию можно получить, связавшись со мной.","permalink":"https://mikhail-yudin.ru/contact/","tags":null,"title":"Контакты"},{"categories":null,"description":"Можете подписаться на E-mail рассылку, чтобы быть в курсе последних записей","permalink":"https://mikhail-yudin.ru/subscribe/","tags":null,"title":"Подписаться на E-mail рассылку"},{"categories":null,"description":"Поиск по всем постам блога с учётом текста описания, можно вводить часть текста, поиск работает моментально","permalink":"https://mikhail-yudin.ru/search/","tags":null,"title":"Поиск по блогу"},{"categories":null,"description":"Спасибо за поддержку!","permalink":"https://mikhail-yudin.ru/donate-thanks/","tags":null,"title":"СПАСИБО!"},{"categories":null,"description":null,"permalink":"https://mikhail-yudin.ru/offline/","tags":null,"title":"Упс, соединение пропало..."}]