Search
Write a publication
Pull to refresh
4
0
Michael Elin @vanelm

Consulting Network Engineer

Send message

Информатор для стиральной машины

Level of difficultyEasy
Reading time7 min
Views6.2K

Когда увлекаюсь работой, забываю обо всём, есть такое. Но бытовые проблемы никуда не исчезают и дают о себе знать. Лет десять назад осознал, что в век интернета уже надо что-то делать с тем, что я постоянно забываю вытащить бельё из стиральной машины. Приспособил к ней систему уведомления. Всё было хорошо, но век гаджетов не долог – нужно было обновить решение, что я и сделал с помощью ESP32 и небольшой программы на Rust. Интересующимся добро пожаловать под кат.

Читать далее

Чиним замедление YouTube на уровне роутера

Level of difficultyMedium
Reading time6 min
Views668K

Всех категорический приветствую. Буквально первого августа, прямо в ночь, стал у меня жутко лагать YouTube. Естественно, мне это сильно не понравилось. Ну, что же, давайте разбираться, почему и как это исправить в условиях моей личной сети.

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее

Делаем резервное питание для роутера

Level of difficultyMedium
Reading time3 min
Views29K

На самом деле резервное питание мы будем делать для ONT (Optical Network Terminal), но т.к. способ подходит для всех подобных устройств с 12v питанием, то обобщил до "роутера".

Цель: сделать устройство которое при отключении электроэнергии сможет питать роутер некоторое время. При этом: на устройстве должна быть индикация напряжения аккумулятора, при переключении с основного контура питания на резервный основной контур питания должен разрываться полностью и наоборот.

Читать далее

История оптимизации Python сервиса: пара простых системных улучшений

Level of difficultyMedium
Reading time9 min
Views4.5K

Привет, Хабр! В двух предыдущих статьях здесь и тут мы рассказывали историю создания одного из компонентов платформы экспериментов в компании Okko — сервиса сплитования трафика. В тех статьях говорилось о множестве изменений и улучшений, которые претерпел Python-код, чтобы работать достаточно быстро. Но как бы качественно не был написан код, все усилия могут сойти на нет, если он будет запущен в неправильной среде. В этой статье продолжим рассказ об оптимизациях и улучшениях, но сейчас речь будет идти не столько об особенностях предметной области и решаемой бизнес-задачи, сколько о том, как мы архитектурно организовали работу сервиса для получения минимального времени ответа.

Читать далее

Chromebook: жизнь после EOS

Reading time8 min
Views6.5K

Привет, жители Хабра! На связи Кирилл из МТС Диджитал.

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

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

Читать далее

Создание масштабируемых приложений при помощи Kafka и реактивного программирования

Reading time12 min
Views11K
image


Введение


В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для распределённой потоковой обработки событий, особенно, если сочетать её с реактивным программированием. В данной статье будет рассказано, как создавать реактивные приложения при помощи этого инструментария.
Читать дальше →

Больше, чем Quagga — пакет для маршрутизации FRRouting

Reading time5 min
Views5.4K

Есть мнение, что ИТ-сообщество можно условно поделить на тех, кто знаком с пакетом маршрутизации FRRouting, и тех, кто никогда о нем не слышал. Мы решили обсудить его возможности, мнения комьюнити, а также отличия от пакета Quagga.

Читать далее

Простые приёмы, которые сделают ваш код нагляднее

Level of difficultyEasy
Reading time8 min
Views14K

Упорядоченный, опрятный, хорошо написанный для восприятия код помогает быстрее выявлять случайные ошибки, и позволяет глазам быстрее "парсить" код, что в целом ускоряет время выполнения задач. В этой статье я, Андрей Рик, fullstack-разработчик с 10+ лет опыта коммерческой разработки, рассказываю как и зачем писать опрятный код.

Читать статью

Самый быстрый фреймворк на Диком Западе: ускоряем Django-rest-framework вместе с Rust

Level of difficultyMedium
Reading time15 min
Views7.6K

Всем привет! Меня зовут Роман Кабаев, я инженер в отделе разработки инструментов тестирования компании YADRO. Вместе с коллегами мы разрабатываем собственную тест-менеджмент систему с открытым исходным кодом TestY.

На этапе запуска TestY в качестве фреймворка для разработки мы выбрали Django, так как он позволяет в максимально короткие сроки реализовать MVP. Однако развивать такой продукт — добавлять фичи, наращивать число пользователей и объем хранимых данных в системе — бывает сложно.

Мы действительно быстро запустили MVP, перевезли данные из TestRail с помощью плагинов, и команды тестирования YADRO уже более года пользуются системой. Но есть одно «но»: пользовательские сценарии разных команд сильно отличаются. Так, добавление в систему более полумиллиона тестов привело к просадке скорости работы определенных эндпоинтов, завязанных на древовидных структурах. 

Спойлер: камнем преткновения для нас стали CPU-bound задачи с большим количеством данных, о том, как я это выяснил, расскажу ниже. Изучив, как можно ускорить выполнение таких задач в Python, я протестировал несколько решений и нашел оптимальное. Если вы разрабатываете веб-приложение на Django или Python и так же, как я, хотите ускорить работу сервиса, читайте эту статью.

Читать далее

msgspec. Библиотека для сериализации и десериализации чего угодно

Level of difficultyEasy
Reading time3 min
Views3.7K

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

msgspec — это инструмент, который может работать со всеми этими форматами и при этом быть быстрым и простым в использовании. Для всех форматов один импорт, что в рамках работы с данной библиотекой является преимуществом. Если вам необходимо парсить много разных форматов данных, то эта библиотека точно подойдет вам.

Читать далее

Базовые аспекты условных операторов в Python

Level of difficultyEasy
Reading time5 min
Views7.2K

Привет, Хабр! Меня зовут Дмитрий, я аналитик данных и программный эксперт на курсе Python для анализа данных в Яндекс Практикуме. Решил поделиться тем, как реализованы условные операторы в Python: статья поможет вам составить впечатление о Python и улучшит ваше понимание условных операторов, при этом изложенные ниже принципы могут помочь и в других языках программирования и в формулах Excel или гугл-таблиц.

Читать далее

Использование Manim + Python для визуализации. Перестановка (комбинаторика)

Level of difficultyEasy
Reading time16 min
Views7.3K

Несмотря на то, что математика сегодня — это глубокий андерграунд, работы 3Blue1Brown вдохновляют и пробуждают внутри что‑то из далёкого детства, где весь мир был непостижимой игровой площадкой, а из кислого были только муравьиные жопки. Чтобы хоть немного прикоснуться к прекрасному, мною была сделана попытка визуализировать простую формулу из комбинаторики. Делюсь опытом.

Читать далее

Создание собственного API на Python (FastAPI): Знакомство и первые функции

Level of difficultyEasy
Reading time20 min
Views78K

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

Читать далее

Создание собственного API на Python (FastAPI): Авторизация, Аутентификация и роли пользователей

Reading time19 min
Views50K

Друзья, приветствую! К сожалению, не хватает времени, чтобы чаще публиковаться, и надеюсь, что вы ждали этой статьи.

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

Читать далее

Как работать с Git и Gitflow: разбираемся на примерах

Reading time6 min
Views15K

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

Меня зовут Николай Пискунов — я руководитель направления Big Data, и в блоге beeline cloud я делюсь практическими советами по программированию. В этой статье погрузимся в увлекательный мир Git и узнаем, как он поможет эффективно управлять версиями наших проектов.

Читать далее

У меня нет конструктора, но я должен инициализироваться

Reading time13 min
Views11K

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

Главная ошибка была в том, что ты в это вообще ввязался — в этом никаких сомнений.

Ещё когда я впервые взялся проходить курс по C++ несколько лет назад, меня учили, что, если я не предоставлю собственного конструктора, то компилятор сам подберёт ему замену — своего рода конструкторы, действующие по умолчанию. Я решил подробнее в этом разобраться, особенно меня волновали случаи, которые выглядят примерно так:

Читать далее

Как я использую плагины VSCode для обработки Json-файлов в работе системным аналитиком

Level of difficultyEasy
Reading time6 min
Views12K

Всем привет! На Хабре много статей про настройку VSCode, но большинство написали разработчики и для разработчиков. Это достаточно крутой и универсальный инструмент, который можно использовать не только для программирования. В этой статье я на своем примере покажу, как его можно настроить и расширить для работы с данными.

Меня зовут Юлия Васильева, и я системный аналитик в МТС Диджитал. Работаю с B2C-продуктом и анализирую много-много разных Json-файлов. В этой статье я расскажу, как облегчила себе работу с ними благодаря VSCode и почему я в восторге от этого инструмента.

Читать далее

Сколько всего серверов Google Global Cache в России?

Level of difficultyEasy
Reading time5 min
Views37K

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

Ответ в следующем абзаце

Невероятно тупой способ взлома Wi-Fi в самолёте (зато бесплатно)

Level of difficultyEasy
Reading time14 min
Views65K

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

Подключившись к Wi-Fi самолёта, я открыл браузер. Страница сетевого логина потребовала ввести данные кредитной карты. Я поискал карту, которая обнаружилась внутри паспорта. В процессе поисков я заметил, что страница логина предлагает бесплатно войти в мой аккаунт программы авиамиль, хотя я пока ни за что ещё не заплатил. Я решил, что это дыра в файрволле. Мне предстоял долгий путь из Лондона в Сан-Франциско, поэтому я решил её исследовать.

Я вошёл в свой аккаунт JetStreamers Diamond Altitude, перешёл на страницу своего профиля и увидел кнопку редактирования. Она выглядела обычно: отбрасываемая тень, скруглённые углы, ничего особенного. С её помощью можно было поменять имя, адрес и так далее.

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

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

Прежде чем получить доступ ко всему Интернету через аккаунт программы авиамиль, мне нужно было написать несколько прототипов. Сначала я думал, что напишу их на Go, но потом понял, что если напишу их на Python, то смогу назвать получившийся инструмент PySkyWiFi. Разумеется, я выбрал второй вариант.

Читать далее

Как я взломал штрих-коды продавца билетов TicketMaster

Reading time12 min
Views33K
Недавно я купил билеты на концерт на сайте TicketMaster. Если бы мне отправили обычный распечатываемый билет в PDF, который бы можно было сохранить офлайн на телефоне, то этой статьи никогда бы не было. Но ведь сейчас 2024 год: всё, что делается онлайн, перестало быть простым.

После завершения покупки TicketMaster сообщил мне, что я не смогу распечатать билеты на мероприятие. Сайт выпускает билеты при помощи системы Mobile Entry, он же SafeTix. Они имеют вид обновляемого штрих-кода, отображаемого в веб-приложении или приложении для Android/iOS TicketMaster.


»Скриншоты не позволят вам пройти», зато позволят инструменты разработчика Chrome

Возможно, я старею, но мне ещё помнятся времена, когда распечатываемые билеты использовались повсюду. Покупатель мог распечатать билеты после приобретения онлайн или даже в кассе (ничего себе!), и принести эти бумажные билеты ко входу на мероприятие. Их можно было сохранять как PDF и просматривать практически на любом устройстве. PDF-билетами можно пользоваться, даже когда у телефона нет подключения к Интернету. Бумажными билетами можно пользоваться, даже когда у тебя нет телефона. Если я покупал билет в официально продающей их компании (а не у подозрительного посредника), то точно знал, что он настоящий. Не было никакой опасности, что тебя с этим билетом не пустят. Можно было спокойно отправлять их друзьям по WhatsApp, iMessage, Signal, электронной почте или даже передавать распечатанные билеты из рук в руки.
Читать дальше →

Information

Rating
Does not participate
Location
Praha, Hlavni Mesto Praha, Чехия
Registered
Activity