Обновить
3
0
Michael Elin@vanelm

Consulting Network Engineer

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

Трюк, который раньше ускорял Python, теперь лишь захламляет код

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

Команда Python for Devs подготовила перевод статьи о том, почему любимая оптимизация Python — присваивать глобальные функции локальным переменным — больше не даёт выигрыша. CPython 3.11 стал умнее, и старый хак l = len уже почти бессмыслен.

Читать далее

Rules File Backdoor. Как атакуют GitHub Copilot и Cursor и почему «это ваша проблема»

Время на прочтение3 мин
Охват и читатели6.3K

Продолжаем серию статей о взломах ИИ. В начале 2025 года исследователи Pillar Security обнаружили новый вектор атаки, который переворачивает представление о безопасности AI‑ассистентов вроде GitHub Copilot и Cursor. Под видом безобидных конфигурационных файлов — тех самых, что задают ИИ правила написания кода — хакерам удалось протащить бэкдоры, вызвав цепную реакцию утечек и ошибок. Давайте разберемся, как безобидный файл с «правилами» превратился в оружие против цепочек поставок.

Читать далее

Назад в будущее 2 — образцовый сиквел легендарного фильма?

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

Первая часть «Назад в будущее» произвела фурор. Сюжет о Марти МакФлае — парнишке из неудачливой семьи, который волею случая попадает в прошлое и меняет к лучшему судьбу своей семьи, проходя через множество приключений, стал невероятно популярен. Получив отличные отзывы критиков и горячий прием аудитории, фильм стал настоящей находкой для студии Universal: при бюджете в 14 миллионов долларов, в прокате удалось собрать 380 миллионов. После такого оглушительного успеха практически сразу же начались разговоры о сиквеле…

Читать далее

GRIZZLY — портативная игровая консоль‑самоделка

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

GRIZZLY — проект на базе Raspberry Pi для энтузиастов, которые захотят самостоятельно собрать игровую консоль. Дизайн — собственное представление того, как должны выглядеть подобные гаджеты.

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

Начать можно, скажем, с простого подключения Raspberry Pi к монитору и старой клавиатуре. Источник питания — зарядка от телефона. Это уже потом добавятся портативный экран, кнопки и подходящий аккумулятор. На каждом шаге — устройство остается работоспособным.

Читать далее

Я упаковал 10 веб-фреймворков в Docker, чтобы вы могли запустить любой из них одной командой

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

Каждый раз, когда речь заходит о новом проекте, начинается вечный спор: какой фреймворк выбрать? Go или Rust для производительности? Python для скорости разработки? А может, стоит попробовать что-то на Elixir? Муки выбора знакомы многим. Вместо того чтобы в очередной раз теоретизировать, я решил пойти другим путем: взять и протестировать их все.

Так родилась идея проекта Framework DevBox — универсальной песочницы, где десять популярных фреймворков на разных языках упакованы в Docker-контейнеры и готовы к запуску одной командой.

Читать далее

Используем Rutoken Lite для шифрования

Время на прочтение11 мин
Охват и читатели11K

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

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

И тут я увидел валяющиеся без дела USB‑токены...

Ну, так получилось: один старый, но когда‑то навороченный Aladdin, а другой современный, но простой Rutoken Lite, оставшийся после апгрейда.
Что, если использовать их?

Читать далее

Превращаем приёмник RTL-SDR в сервер

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

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

В любом из этих случаев может возникнуть проблема — антенна будет находиться слишком далеко от приёмника. Для приёмника RTL-SDR сразу напрашивается два решения — использовать длинный фидер в виде коаксиального кабеля между антенной и приёмником или включить удлинитель USB между приёмником и компьютером.

К сожалению, длинный коаксиальный кабель вносит заметное затухание, ослабляя сигнал на входе приёмника. А максимальная длина обычного удлинителя USB составляет всего лишь 5 м. Длина оптоволоконных удлинителей USB может достигать 100 м, однако их стоимость довольно высока.

Между тем есть ещё одно решение — разместить приёмник RTL-SDR рядом с антенной и подключить к микрокомпьютеру, такому как Raspberry Pi, расположенному недалеко от антенны. Микрокомпьютер, в свою очередь, подключается к домашней локальной сети с помощью кабеля Ethernet или через Wi-Fi. При этом он будет шлюзом между приёмником RTL-SDR и локальной сетью.

Читать далее

Книга «Изучаем React. 2-е издание» отзыв, или 10 главных заметок которые я вынес прочитав книгу

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

Представь, что ты строишь крутой интерактивный сайт из деталек LEGO. React — это как раз такой продвинутый набор «умных» деталек для постройки сайтов. А эта книга — инструкция к нему.

Читать далее

Indoor-локация без дополнительных датчиков: Wi-Fi как единственный источник данных

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели7.3K

Навигация внутри помещений сложна из-за неточной работы GPS. Вместо дорогих маячков можно использовать уже существующие Wi-Fi роутеры, измеряя мощность сигнала для определения местоположения. В Сколтехе мы исследовали такую систему для поиска людей на кампусе, сталкиваясь с проблемами конфиденциальности и ограничениями iOS. Идею удалось применить к личному транспорту: на скейт или самокат можно поставить маячок, который отправляет уведомления о перемещении или пропаже, облегчая поиск и контроль.

Читать далее

Топ-6 Python-библиотек для визуализации

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели13K

Команда Python for Devs подготовила перевод статьи о шести библиотеках Python для визуализации данных. Matplotlib, seaborn, Plotly, Altair, Pygal и Bokeh — у каждой свои сильные и слабые стороны: от академических статичных графиков до интерактивных дашбордов для бизнеса. Выбираем самую подходящую для различных кейсов.

Читать далее

Вам больше не нужен JavaScript

Уровень сложностиПростой
Время на прочтение25 мин
Охват и читатели43K

Команда JavaScript for Devs подготовила перевод статьи о том, как CSS и HTML могут заменить значительную часть JavaScript. Автор делится взглядом на веб как на искусство, показывает возможности современных фич CSS — от вложенности и @starting-style до динамических viewport-единиц, — и доказывает, что сайты могут быть быстрыми, красивыми и интерактивными даже без JS.

Читать далее

SSL-сертификаты в 2025: самый прибыльный развод в истории интернета

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

$199 за файл.

Не за программу. Не за базу данных. Даже не за документ с полезной информацией. За файл в несколько килобайт зашифрованного текста, который говорит браузеру «этот сайт действительно тот, за кого себя выдает».

Читать далее

Сборка тревел-гитары из запчастей с Aliexpress

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

Привет, Хабр! Мне давно хотелось иметь электрогитару со следующими свойствами:

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

Все эти пункты воплотились в одной самоделке прошедшего лета, которую теперь можно всесторонне рассмотреть, послушать и покритиковать.

Читать далее

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

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

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

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

Читать далее

OpenNMS Horizon 34.0, пробую новый релиз на практике

Время на прочтение3 мин
Охват и читатели9.2K

Привет Хабр!

13 августа 2025 года вышел новый релиз OpenNMS Horizon (открытой системы мониторинга сетей и сервисов, NMS). Версия 34.0.0 стала первым крупным обновлением в ветке 34.x.

Не буду пересказывать все технические детали, с ними всегда можно ознакомиться на сайте проекта. Важно другое, OpenNMS распространяется под лицензией AGPLv3 и является полностью open source. Помимо этого, существует продукт OpenNMS Meridian, подписочная услуга с коммерческими планами, поддержкой и SLA. Однако, с учётом текущей ситуации, в России коммерческая версия вряд ли доступна.

Почему же тогда стоит говорить об OpenNMS?

Читать далее

Пять производительных паттернов кэширования, которые ускорят ваш микросервис

Время на прочтение6 мин
Охват и читатели9.9K

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

Читать далее

4 фреймворка апокалипсиса: LangChain, LlamaIndex, CrewAI и Semantic Kernel в действии

Время на прочтение18 мин
Охват и читатели9.9K

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

Для этого воспользуемся сервисом Evolution Foundation Models и рассмотрим фреймворки LangChain, LlamaIndex, CrewAI и Semantic Kernel. Сервис предоставляет доступ к open source моделям по open AI Compatible API. Касаемо фреймворков — каждый из них по-своему упрощает разработку, но имеет уникальные паттерны подключения. В статье я покажу готовые примеры и поясню ключевые части кода. А все ссылки на мои полные решения даю в конце статьи.

Читать далее

HackRF на Windows: работа через DLL и создание Python-библиотеки

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

Небольшая статья для начала работы на питоне с приемником HackRF One под Windows. Когда мне захотелось работать с приемником HackRF напрямую из Python, я обнаружил, что существующая библиотека pyhackrf работает только на Linux. Это подтолкнуло меня к доработке подхода для работы под Windows через прямое взаимодействие с DLL. Возможно, мой опыт кому-то пригодится.

Читать далее

Почему не работает VoWiFi в роуминге

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

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

Есть у меня телефон Redmi Note 13 Pro 5G, который покупался по двум причинам — в нём есть eSIM, он поддерживается российскими операторами в плане работы VoWiFi (он же WiFi calling). И таким образом, я проживая вне РФ смог купить удалено симку российского оператора, которая мне периодически нужна и звонить и принимать вызовы без роуминга, находясь где угодно.

Приехал я тут в Турцию и достал свой телефон и обнаружил, что VoWiFi не работает, хотя он включен в настройках. Написал в поддержку Билайн — те как всегда отморозились тем, что ничего не знают, всё мол должно работать.

Тут нужно заметить, что я живу не в РФ и по месту моего жительства VoWiFi работал, но непосредственно перед отъездом в Турцию я обновил прошивку телефона (со штатной на штатную обычным OTA). В конце статьи напишу, почему это может быть важно.

Ну что делать? А делать, имея роутер на OpenWRT можно следующее. Широко известно, что VoWiFi работает путем установки IPSec соединения с узлом ePDG (Evolved Packet Data Gateway). Для этого происходит сначала обмен по UDP порту 500, а потом по порту 4500.

Вот и установим на роутер tcpdump и посмотрим, что за UDP трафик исходит от моего телефона командой:

Читать далее

Хватит писать try/catch вокруг fetch: история о том, как я устал ловить ошибки

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

Каждый фронтендер знает эту боль: пишешь запрос через fetch - и автоматически добавляешь try/catch. Где-то ловишь TypeError, где-то 500-й статус, где-то подвисший запрос с AbortController. В итоге половина кода в проекте - это обработка ошибок, а не бизнес-логика.

Я прожил с этим годами. Чем больше становился проект, тем больше росла копипаста: таймауты, ретраи, проверки на res.ok, костыли для разных браузеров. Одно и то же, снова и снова.

И вот в какой-то момент я понял: проблема не в том, что ошибки случаются. Проблема в том, что сам fetch вынуждает нас ловить их вручную, каждый раз, в каждом запросе.

Так появилась библиотека @asouei/safe-fetch. Маленькая (3kb), без зависимостей, но с тем, чего нет у самого fetch: общий таймаут, умные ретраи, нормализованные ошибки и поддержка Retry-After.

🌟 Библиотека добавлена в Awesome TypeScript — один из крупнейших мировых списков лучших TypeScript-проектов

Как я решил проблему

Информация

В рейтинге
Не участвует
Откуда
Praha, Hlavni Mesto Praha, Чехия
Зарегистрирован
Активность