Как стать автором
Поиск
Написать публикацию
Обновить
Вадим @BigDflzread⁠-⁠only

Пользователь

Отправить сообщение

Сканирование баркодов c помощью камеры и внешних устройств в Compose

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

В этой статье рассмотрим, как сканировать баркоды в Android — приложениях, а также как в Compose работать с камерой (предпросмотр и логика сканирования), а также и как поддерживать внешние сканеры.

Читать далее

Параллельный цикл на worker. Многопоточность JS

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

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

Читать далее

Восстанавливаем повреждённый Linux через chroot

Время на прочтение4 мин
Количество просмотров11K

Доводилось ли вам раскупоривать системник с Linux, который не грузится ни в какую – даже  после того, как вы убедились в корректности настроек BIOS и в том, что никаких серьёзных аппаратных ошибок в машине нет?

Если да – то вам просто необходимо изучить chroot. Он станет для вас настоящей палочкой-выручалочкой.

Например, мне пару недель назад удалось таким методом восстановить устройство Nanopore GridION, после того, как мне совершенно не помог официальный метод переустановки через  .iso-файл образа. Поэтому я решил задокументировать проделанные шаги.

Этот метод я нащупал только после того, как Linux более десяти лет был моей рабочей лошадкой (спасибо, Мэтт !). Поэтому у меня есть основания полагать, что этот метод очень полезен и заслуживает вашего внимания. Надеюсь, этим постом мне удастся помочь тем, кому не доставало такого рассказа.

Читать далее

Создание подписанного TLS сертификата с помощью OpenSSL и PowerShell

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

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

Привет, Хабр и читатели! В своей прошлой статье про написание скрипта на PowerShell для отслеживания сроков действия сертификатов я упоминал о том, что, по роду своей нынешней деятельности, мне очень часто приходится разворачивать разные сервисы. Практически все современные сервисы требуют сертификаты безопасности для обмена данными. В этой статье-туториале я расскажу, как создать скрипт на PowerShell, который позволит (и упростит) создавать сертификаты субъекта для сервисов, подписанные вышестоящим root сертификатом, а также будет упаковывать ключи в формат .pfx, создавать цепочку .pem. Статья будет в виде подробного туториала, чтобы охватить как можно больше аудитории (а она разная) и в основном для тех, кто будет это делать впервые и ещё слабо знаком с OpenSSL и PowerShell.

Конкретная демонстрация работы скрипта показана в самом конце статьи с помощью GIFки, и там же (в конце) я поделился полным скриптом. Начнём разбираться?

Займёмся делом

Защита INA226 от обратной полярности

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

Ошибка при подключении источника питания ко входу АЦП микросхемы INA226 и она отправляется в лучший мир. Дальше квест по покупке новой микросхемы, перепайке мелкого SMD корпуса и острое желание предотвратить эту ситуацию в будущем.

Описание схемы защиты от обратной полярности и высокого напряжения на входе, а также расчёты для программной компенсации ошибки измерения.

Читать далее

Как HTTP(S) используется для DNS: DNS-over-HTTPS на практике

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

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

Читать далее

Решение проблемы медленной загрузки документов в модуле Диадок на примере УТ 10.3

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

Частный случай повышения производительности работы модуля Диадок на конфигурации УТ 10.3. Испробованы способы типовой оптимизации от 1С путем добавления ресурса в индексированные поля. Но результат дал только способ с нарушением рекомендаций 1С.

Добрый день, коллеги.

Обычно я не пишу статей, но решился на этот опус из соображений массовости использования решения Контура модуль Диадок для 1С. Также понимаю, что многие еще используют УТ 10.3 или УПП и могут сталкиваться с похожей деградацией.

Постараюсь описать решение достаточно подробно, но применять его БЕЗ ПОНИМАНИЯ механизма работы SQL крайне не рекомендую. Решение будет предложено для связки 1С + MS SQL.

Суть проблемы. У нас достаточно большая база (конечно для каждого это свои показатели), с большим количеством объектов и свойств для них. Модуль Дидока в моей связке (УТ 10.3 + Диадок) хранит свои стыковки контрагентов также в регистре сведений ЗначенияСвойствОбъектов. И при загрузке списка документов он в цикле, по каждому документу из списка получает сопоставление с объектом из базы данных (в данном случае Контрагентом) выполняя такой запрос:
 

Читать далее

Как улучшить доступность сайтов с помощью семантического HTML: стандарты семантики

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

Привет, Хабр. Меня зовут Дмитрий, я Frontend-разработчик в компании Webest. В этой статье расскажу, как эффективно использовать семантический HTML, какие теги (от <header> и <main> до <article> и <aside>) действительно приносят пользу, и в каких ситуациях они работают лучше всего. 

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

Читать далее

IPv6 Deep Dive (Cisco)

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

IPv6 (Internet Protocol version 6) – это последняя версия Интернет-протокола (IP), разработанная для решения ограничений IPv4, особенно проблемы исчерпания доступных IPv4-адресов.

Сегодня мы рассмотрим всё до мельчайших деталей на устройствах CISCO.

Протокол IP (Internet protocol) является протоколом сетевого уровня.

В версии 4 мы имеем 32бита для поля адреса.

максимум 11111111 11111111 11111111 11111111 в двоичной системе

или привычное глазу 4 294 967 295.

Что нам предлагает IPV6? 128 бит в поле адреса

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111

И в десятичной системе. Т.е 2 в 128 степени. Давайте спросим у ИИ сколько это делает

перейти в IPv6

6 новых возможностей CSS, которые должен знать каждый front-end разработчик в 2023 году

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

Мощные и стабильные CSS фичи, которые вы можете использовать уже сегодня.

Я считаю, что каждый front-end разработчик должен знать, как использовать container query, создавать привязку к прокрутке, избегать position: absolute с помощью grid, быстро создавать круг, использовать каскадные слои и достигать большего с помощью логических свойств. Эта статья — описание каждой из 6 новых возможностей CSS.

Читать далее

Что нужно знать о современном CSS (весна 2024 года)

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

Цель этого руководства — познакомить вас со списком новых (потрясающих) возможностей, недавно появившихся в CSS.

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

Читать далее

Создаём HTTP-сервер на Java NIO

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

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

В этой статье создадим HTTP-сервер на чистом Java NIO, без всяких Spring Boot, Jetty и прочих фреймворков. Будем разбираться, как работает неблокирующее I/O, что такое Selector, SocketChannel, и как заставить сервер обрабатывать тысячи запросов одновременно без запуска тысяч потоков.

Читать далее

Git для самых маленьких. От первой команды до настройки SSH

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

Жизнь каждого человека начинается со слова "мама".

Дорогой читатель, твой путь начнется со слова "git".

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

Читать далее

Внутренняя кухня UEFI: что это такое и как мы готовим его в YADRO

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

Привет, Хабр. На связи Сергей Пушкарёв, я руковожу отделом разработки BIOS в YADRO. Расскажу об устройстве UEFI и его применении в компании. Мы разрабатываем и выпускаем разные аппаратные платформы: серверы, системы хранения данных, клиентское и телеком-оборудование. 

Один из «кирпичиков», который обеспечивает инициализацию и функционирование оборудования, — это BIOS (но правильнее говорить UEFI 🙂). В статье кратко разберем историю этой системы и ее современную реализацию — UEFI. Также поговорим о подходе к разработке и отладке этого ПО в YADRO.

Вы узнаете, зачем нам нужна «синяя коробка» Intel, как мы прошиваем BIOS и проводим диагностику «в полях».

Читать далее

Верстка для ленивых: как перестать бояться CSS и начать верстать как супергерой

Время на прочтение3 мин
Количество просмотров13K

Развалившийся макет, сломанные кнопки и тестировщик, отправляющий бесконечные баг-репорты... Знакомая боль? Вёрстка может быть не кошмаром, а крепостью, если подойти к ней с умом. В этом гайде — проверенные принципы, которые помогут вам делать гибкую и устойчивую вёрстку, способную пережить любые изменения контента и дизайна.

Читать далее

Как уменьшить боль от this в классах javascript

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

На службе была поставлена задача подготовить и передать клиенту js-библиотеку, которая состояла из несколько классов. Каких-то особых трудностей не ожидалось, поскольку библиотека использовалась в нашей конторе уже не один год и была тщательно оттестирована.

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

Но одна вещь останавливала меня — часть методов ключевого класса для обращения к другим свойствам и функциям своего класса использовала this. Кайл Симпсон удачно назвал такие методы this-aware functions. И неправильный вызов этих функций мог создать проблемы для разработчиков клиента.

Читать далее

Пишем свой загрузчик операционной системы Linux

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


Меня давно интересовал вопрос, насколько сложно написать собственный загрузчик операционной системы. Я не говорю о простой программе, выводящей «Hello, World!», а о полноценном загрузчике, который передаёт управление от встроенного программного обеспечения компьютера ядру операционной системы. Современные загрузчики представляют собой сложные программы, способные загружать множество операционных систем различными способами, учитывая массу нюансов, связанных с программным и аппаратным обеспечением. Читая их исходный код, легко утонуть в деталях и потерять понимание сути и реализации.


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

Читать дальше →

Разработка пользовательских агрегатных функций для аналитики в MySQL

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

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

Вы когда-нибудь писали аналитические запросы в MySQL и понимали, что встроенных функций вам не хватает? Хотите посчитать медиану зарплат? 99-й процентиль времени ответа запросов? Собрать JSON-массив прямо в базе данных?

В MySQL нет MEDIAN(), PERCENTILE_CONT() и нормального способа объединить данные в JSON. Всё приходится делать через костыли.

Решение? Написать собственную агрегатную функцию на C++, которая будет работать так же, как SUM() и AVG(), но делать то, что вам реально нужно.

Читать далее

Как ускорить Maven сборку без переезда на Gradle

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

С ростом размера Maven проекта встает вопрос скорости сборки и выполнения тестов. Один из самых очевидных способов оптимизации - переезд на другую систему сборки (например, Gradle). Однако перед тем как переезжать (что неизбежно создаст новые проблемы - об этом в конце) давайте поговорим о том, что мы можем сделать для ускорения, оставаясь на Maven. Тем более что многие советы нам пригодятся в любом случае, даже если переезд в итоге и состоится.

Мы начнем с простого, поговорим про кеши и build-сканы и затем заглянем под капот Maven, чтобы понять, как найти и устранить узкие места, а также детально сравним с Gradle. Эффект от каждого совета по отдельности может быть и не такой заметный, но в совокупности ускорение может быть в разы!

В рамках этой статьи мы поговорим в основном про оптимизацию компиляции.

Погнали

CSS в 2025: какие фишки теперь доступны?

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


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


В начале января 2025 года мне захотелось посмотреть, какие новые фишки CSS стали поддерживаться современными браузерами за прошлый год. Провести некий срез, что уже можно использовать. И тут меня посетила мысль: «А почему бы не поделиться новинками на Хабре?». Вот я и пришёл.


Сразу скажу, что эта статья — краткий обзор появившимся возможностей. Моя цель — уведомить вас. Я не буду закапываться в принцип работы и другие нюансы. По этой причине, пожалуйста, воспринимайте эту статью как список, что можно изучить в 2025 году.


Для составления списка я использовал сайт «Can I Use». Брал те новшества, которые стали «зелёными» в 2024 году. Смотрел последние версии браузеров Chrome, FireFox, Opera, Edge, Safari, iOS Safari, Samsung Internet и Android Browser.


Не буду больше тянуть. Давайте посмотрим, что я вам подготовил.

Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность