Как стать автором
Обновить
14
0
Алексей Шумкин @ashumkin

системный разработчик

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

Новичкам про управление шириной канала в Linux

Время на прочтение 7 мин
Количество просмотров 73K
Некоторое время назад меня попросили настроить в удаленном филиале простейшую балансировку трафика. Работают они, бедолаги, через ADSL, и отправка электронных писем большого объема (сканы документов) забивает им весь обратный канал, что приводит к проблемам в работе с офисными онлайн-программами через VPN.
В качестве шлюза у них используется Linux (Fedora). До этого я пару раз видел, как подобная балансировка настраивается через ipfw на FreeBSD, а так как знаю механизм iptables достаточно хорошо, не ожидал особых проблем. Но поискав в Интернете, я был неприятно удивлен тем, что iptables мне тут совсем не помощник. И знания о порядке прохождения пакетов через его таблицы и правила мне почти не пригодятся. Нужно изучать tc из пакета iproute2.

Неожиданно для себя, я потратил два дня, для того чтобы более-менее разобраться в балансировке трафика средствами iproute2. Сначала попалась не самая лучшая для новичка статья про HTB(здесь). Различные примеры из Интернет тоже порой вводили в ступор, так как в них часто не было описания конкретных опций или смысла их применения. Поэтому я и попытался собрать полученные мною знания в одну статью, а главное описать все на доступном для новичков уровне.
Читать дальше →
Всего голосов 115: ↑109 и ↓6 +103
Комментарии 21

Вызволяем увлажнитель из сетей Xiaomi

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

Вероятно, вы слышали о том, что сухость воздуха — одна из частых причин появления статического электричества. Вот и я решил обзавестись увлажнителем, когда заметил, что кошка бьется током почти при каждом прикосновении. И нет, ее зовут не Электро или Шторм Спирит. Знакомьтесь, Амидала (в честь персонажа вселенной «Звездных войн»).

Время шло, потребности в комфортном использовании техники росли, а вот ее функциональность и стабильность оставляли желать лучшего. После очередного сбоя серверов Xiaomi в октябре прошлого года в голове окончательно закралась мысль: почему дом — мой, а серверы — чужие? Так я познакомился с Home Assistant, MQTT, zigbee2mqtt и селфхостингом, о чем расскажу под катом!
Читать дальше →
Всего голосов 66: ↑66 и ↓0 +66
Комментарии 46

Как мы переехали с Oracle на PostgreSQL в нагруженном сервисе без даунтайма

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

Всем привет! Я Сергей, работаю в B2B-команде Яндекс Маркета последние 3,5 года. Как уже понятно из заголовка, сейчас я вам расскажу про yet-another-миграцию с базы на базу, которая началась в середине 2021 года и заняла почти год. Получается, мемуары.

Вас ждёт рассказ о том, как мы:

- несколько месяцев чинили тесты и делали трансформер;

- десятки раз переливали данные;

- чинили баги незаметно для пользователей;

- заставили сервис работать на PostgreSQL быстрее, чем он работал на Oracle.

Читать далее
Всего голосов 84: ↑85.5 и ↓-1.5 +87
Комментарии 15

Уровни изоляции транзакций с примерами на PostgreSQL

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

Вступление


В стандарте SQL описывается четыре уровня изоляции транзакций — Read uncommited (Чтение незафиксированных данных), Read committed (Чтение зафиксированных данных), Repeatable read (Повторяемое чтение) и Serializable (Сериализуемость). В данной статье будет рассмотрен жизненный цикл четырёх параллельно выполняющихся транзакций с уровнями изоляции Read committed и Serializable.


Для уровня изоляции Read committed допустимы следующие особые условия чтения данных:


Неповторяемое чтение — транзакция повторно читает те же данные, что и раньше, и обнаруживает, что они были изменены другой транзакцией (которая завершилась после первого чтения).


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


Что же касается Serializable, то данный уровень изоляции самый строгий, и не имеет феноменов чтения данных.

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

Запускаем игры под Wine c поддержкой Native Wayland

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

Wine Wayland


Иллюстрации к статье подготовлены нейросетью freepik.com.


Многие люди на планете играют в видеоигры. Игры помогают улучшить когнитивные способности, провести приятно свободное время. Данная статья посвящена тому, как запустить Windows-игры под Linux в Wayland.


Эта статья могла бы быть: ставим Wine(Proton) и XWayland, запускаем игры, успех, но нет. В данном материале мы будем сами собирать Wine, решать проблемы, а так же наш Wine будет работать напрямую с Wayland композитором без прослойки в виде XWayland. Плюсы такого метода — лучшая производительность и меньше инпут лаг. Благодаря Wine 9.0 это стало возможно, но не все так просто, как может показаться читателю с первого взгляда. Для примера мы запустим игры: Overwatch 2 через Battle.net клиент и Aimbeast, KovaaK's, Apex Legends через Steam.


Если вас заинтересовала статья, то добро пожаловать под cut.

Читать дальше →
Всего голосов 41: ↑41 и ↓0 +41
Комментарии 58

Подключение Keycloak к Spring Boot приложению

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

Привет Хабр!

Как известно, spring OAuth2.0.x переведен в режим поддержки уже почти как 2 года назад , а большая часть его функциональности теперь доступна в spring-security (матрица сопоставления). В spring-security отказались переносить Authorization service (roadmap) и предлагают использовать вместо него свободные или платные аналоги, в частности keycloak. В этом посте мы хотели бы поделится различными вариантами подключения keycloak к приложениям spring-boot.

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

Делаем HMI-панель из планшета для системы автоматизации на контроллере Wiren Board

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

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

В комплекте с контроллером Wiren Board идёт программное обеспечение, которое позволяет закрыть большинство задач построения и эксплуатации системы автоматизации: графические и текстовые панели, архив данных с графиками, драйверы для устройств, скрипты wb-rules.

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

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

Раскрываем секреты загрузочных ISO-образов

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


В этой статье я хочу поговорить об ISO-файлах, на которых, как известно, распространяются дистрибутивы операционных систем. Начиная писать статью, я немного сомневался в её актуальности, так как я ассоциировал ISO-образы с оптическими дисками, которые, ввиду ряда причин, уходят в прошлое. У меня было стойкое понимание, что ISO-файлы в основном нужны только для хранения образов оптических дисков, которые содержат установщик операционной системы. Но, как оказалось, всё гораздо сложнее и интереснее, особенно применительно к современному железу.
Читать дальше →
Всего голосов 193: ↑193 и ↓0 +193
Комментарии 73

Тёмная сторона MH-Z19

Время на прочтение 13 мин
Количество просмотров 101K
Что, опять? Сколько ж можно?

Да, сегодня мы снова поговорим о всеми нами любимом датчике углекислого газа Winsen MH-Z19. Нет, повторов не будет*.



* почти

Как вы могли заметить, на страницах настоящего ресурса регулярно появляются страшилки статьи об опасностях высокой концентрации СО2 в помещении. И хотя утверждения, что концентрации выше 1000 ppm несут ад и погибель, слегка преувеличены (википедия говорит, что хоть какие-то эффекты начинаются с 1%, то бишь 10 000 ppm, тогда как у датчика весь диапазон — 5000 ppm) — СО2 может служить индикатором присутствия других нехороших вещей в силу недостаточности вентиляции. Потому я тоже решил приобщиться к увлекательному миру СО2-метрии и разжился упомянутым датчиком.

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

Но пока я копипастил, в душу закрался червь сомнения — а отчего это датчик выдаёт девять байт, а на СО2 из них приходится всего два байта? Может быть, он хочет сказать мне что-то ещё?
Поговорим с датчиком по душам
Всего голосов 72: ↑72 и ↓0 +72
Комментарии 66

Кондиционер айтишника. Часть I

Время на прочтение 6 мин
Количество просмотров 60K
Пенни, все становится лучше, когда есть bluetooth © Шелдон, TBBT

Домик хотя и "тестовый", но все старались делать максимально правильно — хорошее утепление, приличные стеклопакеты и т.п.

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

Мы предвидели такой вариант развития событий и заранее подготовились к установке кондиционера: проложили все необходимые магистрали на этапе стройки.
Читать дальше →
Всего голосов 47: ↑44 и ↓3 +41
Комментарии 135

Рассматриваем под лупой отладчик Delve для Go-разработчиков

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

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

Сегодня есть множество IDE, поддерживающих работу с Go и позволяющих отлаживать приложения. На текущий момент для Go представлены два отладчика: GDB (но он не поддерживает многие фичи языка, например Go-рутины) и Delve. Многие IDE используют последний как дефолтный отладчик. И в этой статье я расскажу о возможностях Delve: о том, что умеет сам отладчик, а не что нам предоставляет IDE.

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

OSINT самолетов, пароходов и поездов

Время на прочтение 2 мин
Количество просмотров 25K
Предлагаем вашему вниманию набор инструментов от мировых профессионалов в области OSINT, которые помогут в ваших поисках информации, связанных с транспортом. Если вы решили заняться автостопом, авиастопом или хотите поймать попутный грузовой корабль, то эти сервисы для вас. Если вам срочно понадобилось отследить самолет Илона Маска или просто послушать переговоры диспетчеров, то тоже найдете тут много полезного.

Водный транспорт


MarineTraffic


image

Открытый проект, основанный на сообществе, предоставляющий (почти) в режиме реального времени информацию о передвижении судов и их местонахождении в гаванях и портах.
Читать дальше →
Всего голосов 72: ↑68 и ↓4 +64
Комментарии 11

Куда уходит время? Боремся за миллисекунды в Kubernetes

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

Привет, Хабр! Меня зовут Вова, я разрабатываю observability-платформу в Ozon. Как-то раз в наш уголок на 42 этаже заглянули коллеги — и поделились наблюдением. Если открыть рядом графики времён запросов и ответов двух живущих в Kubernetes и общающихся между собой микросервисов, то иногда можно наблюдать большую разницу в высоких квантилях: клиент считает, что один ответ из сотни ему приходит за сто миллисекунд, сервер же говорит, что успевает ответить за десять.

Куда ушло время? Можно ли его вернуть? Под катом расскажу о том, с какими граблями может столкнуться микросервис, живущий в типичной инсталляции Kubernetes.

Читать далее
Всего голосов 141: ↑140 и ↓1 +139
Комментарии 23

Яндекс: умный дом по-взрослому

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


Недавно компания Яндекс запустила свою систему «умного дома». Нам предлагают купить недорогие работающие по Wi-Fi устройства: адаптер в розетку, лампочку и ИК пульт. Интересно, что у разработчиков «умных» устройств появилась возможность создать свои навыки «умного дома», это позволит подключить девайсы к системе Яндекса и управлять ими голосом через Алису. В списках навыков появляется всё больше новых брендов. Алиса прекрасно понимает русскую речь, что делает ее безусловным лидером среди голосовых ассистентов на российском рынке.
Однако, не всё так гладко…
Читать дальше →
Всего голосов 37: ↑34 и ↓3 +31
Комментарии 101

За кулисами сети в Kubernetes

Время на прочтение 16 мин
Количество просмотров 41K
Прим. перев.: Автор оригинальной статьи — Nicolas Leiva — архитектор решений Cisco, который решил поделиться со своими коллегами, сетевыми инженерами, о том, как устроена сеть Kubernetes изнутри. Для этого он исследует простейшую её конфигурацию в кластере, активно применяя здравый смысл, свои познания о сетях и стандартные утилиты Linux/Kubernetes. Получилось объёмно, зато весьма наглядно.



Помимо того факта, что руководство Kubernetes The Hard Way от Kelsey Hightower просто работает (даже на AWS!), мне понравилось, что сеть поддерживается в чистоте и простоте; и это замечательная возможность понять, какова роль, например, Container Network Interface (CNI). Сказав это, добавлю, что сеть Kubernetes в действительности не очень-то интуитивно понятна, особенно для новичков… а также не забывайте, что «такой вещи, как сети для контейнеров, попросту не существует».
Читать дальше →
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 3

Создание оптимизированных образов Docker для приложения Spring Boot

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

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

В этой статье рассматриваются различные способы контейнеризации приложения Spring Boot:

- создание образа Docker с помощью файла Docker,

- создание образа OCI из исходного кода с помощью Cloud-Native Buildpack,

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

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

Хабр, зачем ты сломал свою поддержку (а заодно и шапку)?

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

Я давненько уже читаю Хабр, скоро 10 лет будет. Конечно, немало раз я натыкался на какие-то баги, которые добросовестно репортил через форму "Техническая поддержка" в футере страницы. И всегда реакция была довольно адекватной, техподдержка сразу понимала мои репорты, либо подтверждала, либо уточняла технические детали.

А недавно обнаружил очередную проблему.

Было внезапно
Всего голосов 111: ↑105 и ↓6 +99
Комментарии 100

Провайдеры прекратили блокировать Tor… или вам лишь об этом сказали?

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

В начале декабря я обратил внимание, что в одной автономной системе (AS) начали уходить в оффлайн ретрансляторы (relay) сети Tor. В той же AS был расположен и мой relay.

Разумеется, этому могло быть простое объяснение – кто-то уехал в отпуск и отключил компьютер, или же просто забыл оплатить интернет. Но учитывая, что возраст некоторых из пропавших relay’ев превышал 3 года, а ранее нестабильностью они не отличались, такие наблюдения наводили на немного другие мысли.

Если месяц назад поиск через сервис Tor|Metrics выдавал для этой AS десяток relay’ев из которых обычно offline было меньше половины, то в настоящий момент Tor|Metrics выдает всего 3 relay’а, из них online периодически отмечаются один-два. Но так мой relay всё ещё сохранял работоспособность, а дяди с дубинками не пытались выломать мне дверь, я решил просто понаблюдать за ситуацией.

Далее я расскажу о своих наблюдениях и оценке масштаба блокировки сети Tor.

Читать далее
Всего голосов 74: ↑73 и ↓1 +72
Комментарии 114

Читаем QR код

Время на прочтение 5 мин
Количество просмотров 1.1M
Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.
Читать дальше →
Всего голосов 621: ↑612 и ↓9 +603
Комментарии 109

Iptables: немного о действии REDIRECT, его ограничениях и области применения

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

Данная заметка повествует о действии REDIRECT в iptables, его ограничениях и области применения.

Iptables и REDIRECT


Действие REDIRECT предназначено для перенаправления пакетов с одного набора портов на другой внутри одной системы, не выходя за пределы хоста.
Читать дальше →
Всего голосов 25: ↑23 и ↓2 +21
Комментарии 2

Информация

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

Специализация

Backend Developer
Lead
Linux
Git
Golang
Docker
OOP
Kubernetes
Python
Design patterns
SQL
Nginx