Pull to refresh
1
0
Send message

Пакуем весь трафик в Ping message, чтобы не платить за интернет | ICMP NAT traversal

Level of difficultyHard
Reading time29 min
Views94K

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

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

Подобные условия пользования, само собой, порождают внутреннее недовольство пользователей:

За интернет они платят? — Да.

Раздача как-либо использует ресурсы провайдера сверх нормы? — Нет.
Читать дальше →
Total votes 233: ↑231 and ↓2+294
Comments91

Простые методы оптимизации программ Go

Reading time11 min
Views15K
Я всегда забочусь о производительности. Точно не знаю, почему. Но меня просто бесят медленные сервисы и программы. Похоже, я не одинок.

В тестах A/B мы попытались замедлять выдачу страниц с шагом 100 миллисекунд и обнаружили, что даже очень небольшие задержки приводят к существенному падению доходов. — Грег Линден, Amazon.com

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

  • Операции, которые хорошо выполняются в небольших масштабах, становятся нежизнеспособными с ростом числа пользователей. Обычно это операции O(N) или O(N²). Когда база пользователей мала, всё работает отлично. Продукт спешат вывести на рынок. По мере роста базы возникает всё больше неожиданных патологических ситуаций — и сервис останавливается.
  • Много отдельных источников неоптимальной работы, «смерть от тысячи порезов».
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments10

Здоровая конкуренция в GO. Главное не перехитрить самого себя

Level of difficultyMedium
Reading time15 min
Views14K

Несколько лет назад я прочитал статью о параллелизации в GO и ничего не понял – я тогда только начинал программировать на этом языке. Но размышления автора мне очень понравились – они подкреплялись бэнчмарками, что было довольно убедительно. Автор игрался c параметром GOMAXPROCS и показал, что увеличение этого параметра не всегда приводит к увеличению производительности. Под конец статьи он подобрал такое значение, которое будет максимально эффективным для его функции, на мое удивление, это значение оказалось равно единице! Т.е. его код работал максимально эффективно, если работал всего на одном ядре процессора! Однако, в одном из комментариев под той статьей я прочел, что все эти изыскания нелепы, поскольку та же самая функция из статьи запущенная всего в один поток оказывается эффективнее любой ее параллельной реализации.


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



Читать дальше →
Total votes 33: ↑31 and ↓2+39
Comments21

Docker в опасности, или как искать уязвимости в образах контейнеров

Level of difficultyEasy
Reading time16 min
Views16K


Всем привет!

Меня зовут Роман, я — DevOps-инженер компании Nixys. Продолжаем тему безопасности и рисков. В предыдущей статье говорилось о безопасном подходе к эксплуатации облачных инфраструктур, в этой — расскажу про безопасность docker-образов: какие уязвимости бывают, как их искать в энтих самых docker-образах (спойлер: использовать сканеры уязвимостей, обзор прилагается) и что с ними делать.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments2

Security Week 2310: безопасность квадрокоптеров DJI

Reading time4 min
Views4.5K
На прошлой неделе исследователи из Рурского университета в Бохуме опубликовали научную работу, посвященную безопасности квадрокоптеров DJI. Анализ устройств проводился при помощи реверс-инжиниринга прошивок, фаззинга и исследования протоколов коммуникаций. В результате ученые нашли 16 уязвимостей, которые производитель закрыл через день после публикации работы.



Всего в исследовании приняли участие три модели дронов DJI: DJI Mini 2, Mavic Air 2 и Mavic 2 Pro. Ученые также проанализировали две модели пультов управления, которые идут в комплекте с этими квадрокоптерами. Позднее выяснилось, что все найденные проблемы также актуальны и для более свежей модели Mavic 3. В рамках работы энтузиасты изучили все способы взаимодействия с устройствами, включая USB, UART, беспроводную связь (Bluetooth, Wi-Fi и проприетарный стандарт Ocusync), приложения для смартфона, а также собственный протокол коммуникации DJI Universal Markup Language.
Читать дальше →
Total votes 5: ↑4 and ↓1+7
Comments1

Почему коптеры не летают долго?

Level of difficultyMedium
Reading time4 min
Views10K

Коптеры (мультироторные летательные аппараты) сейчас получили огромное распространение от игрушек до оружия или профессиональной видеосъемки. Оно и понятно — относительно простая конструкция; все базируется на инерциальной системе; 3,4 или больше пропеллеров — и полетел.

Но почему же коптеры не летают долго? Среднее время работы на одном аккумуляторе у большинства моделей не превышает 1го часа. Так в чем тут дело?

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

И так начнем.

Возьмем характеристику любого двигателя одного из самых популярных производителей моторов для коптеров компании T‑motor. Мне показался интересным мотор MN7005, просто потому что он подходил под мои задачи.

    

Читать далее
Total votes 17: ↑13 and ↓4+13
Comments119

STM8L подробное руководство первых шагов

Level of difficultyEasy
Reading time6 min
Views13K

Речь пойдет о маломощном микроконтроллере STM8L001J3. Постараюсь подробно рассказать о необходимых шагах для прошивки "hello world" и различных подводных камнях.

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments6

Сценарии спуфинговых атак на спутниковые системы навигации

Reading time7 min
Views17K
image

Интерактивная карта инцидентов ГНСС-спуфинга. Была раньше здесь, теперь ее нет.

  • 96% специалистов по cybersec игнорируют проблему спуфинга;
  • в 2012 году стоимость атаки была $100 000, в 2022 — всего $500;
  • в 2018 году в продажу поступил GPS Spoofer за $5;
  • по роликам на youtube (или гайдам с github) любой человек может запустить свой спуфинг за 15 минут;
  • с железом на $1000 можно положить навигацию по всей Москве;
  • с 2016 по 2018 обнаружено 9883 инцидента с 1311 судами в Геленджике;
  • 85% краж автомобилей происходит с джаммерами;
  • 680 форков на GitHub для подделки сигналов GPS;
  • каждый год продается 450 000 серверов времени, в мире их уже более 3 млн., от каждого тайм-сервера зависит кусочек критической инфраструктуры.

Термины


GPS, система глобального позиционирования — спутниковая система навигации, обеспечивающая измерение расстояния, времени и определяющая местоположение во всемирной системе координат WGS 84. Позволяет почти при любой погоде определять местоположение в любом месте Земли (исключая приполярные области) и околоземного космического пространства.
Читать дальше →
Total votes 18: ↑16 and ↓2+21
Comments7

Визуальный SLAM: делаем HD-карты при помощи смартфона

Reading time11 min
Views15K

Привет, Хабр! Меня зовут Гращенков Александр, я iOS-разработчик в компании RoadAR. С 2016 года живу и работаю в Иннополисе, занимаюсь компьютерным зрением и интеграцией нейросетей в мобильные платформы.

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

Сейчас мы создаем детализированные трехмерные сканы дорог при помощи смартфонов. Я расскажу, что такое HD-карты, сравню два подхода к их созданию и покажу вам трехмерный Иннополис.

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments16

Высокоточная навигация GNSS RTK

Level of difficultyEasy
Reading time7 min
Views20K

Демонстрации возможностей микросхем ZED F9P. Это примёмник GNSS с возможностью высокоточной навигации по технологии RTK.

Я решил самостоятельно оценить точность измерения координат.

Читать далее
Total votes 14: ↑12 and ↓2+13
Comments52

Подводные камни бенчмаркинга в .NET: фрагмент книги Андрея Акиньшина

Reading time12 min
Views6.2K

Андрей Акиньшин @DreamWalker хорошо известен в .NET-сообществе: он мейнтейнер BenchmarkDotNet и perfolizer, член программного комитета нашей конференции DotNext, автор книги Pro .NET Benchmarking о том, как правильно бенчмаркать.

А теперь эта книга есть и на русском языке — ее перевод подготовило издательство «Питер». Сделаем важную оговорку: переводил не сам Андрей, так что русскоязычная терминология может отличаться от той, которую выбрал бы он, и «каноническим авторским вариантом» по-прежнему остаётся англоязычный. Но наверняка для многих важна сама возможность прочитать это на родном языке, поэтому с любезного разрешения Андрея и издательства мы публикуем на Хабре фрагмент перевода.

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

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments3

Анализ теней: 5 примеров использования SunCalc для OSINT расследований

Reading time3 min
Views16K
image

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

На сайте вы задаете точку на карте и в результате видите круг виртуального небосклона. Дугой оранжевого цвета отмечается сегодняшний путь Солнца по небу. Та часть небосвода, где Солнце бывает хоть когда-нибудь, закрашивается светло-желтым. Так же показывается направление на Солнце на восходе, на закате и в текущий момент времени. Вы можете найти местоположение Солнца в непогожий день.

Есть два проекта: SunCalc.org и SunCalc.net. Последний на досуге разработал хабраюзер Mourner в 2010 году и написал пост на Хабре, а через год выложил библиотеку в открытый доступ (а какой-то ушлый немец без упоминания автора её форкнул).

Под катом несколько примеров, как по теням на кадрах видео и фото можно вычислить недостающую информацию: местоположение или время.
Читать дальше →
Total votes 35: ↑29 and ↓6+36
Comments5

Линейная алгебра для разработчиков игр

Reading time19 min
Views779K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18+278
Comments61

Каждому 3D принтеру — по рельсам

Reading time5 min
Views20K

Давно хотел написать статью о своём положительном опыте переделки 3D принтера с линейных стержней на рельсы, похоже время пришло.

В ходе этой статьи расскажу, что и как я делал, возможно, мой опыт кому-то поможет перевести свою рабочую лошадку на рельсы.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments62

Продвинутое компьютерное зрение. Введение в Прямое визуальное отслеживание

Reading time9 min
Views13K

Задача отслеживания объектов на изображении - одна из самых горячих и востребованных областей ML. Однако уже сейчас мы имеем огромное разнообразие различных техник и инструментов. Данная статья поможет начать Ваш путь в мир компьютерного зрения!

Сперва, мы представим некоторые типы методов визуального отслеживания. После, мы объясним как классифицировать их. Мы также поговорим о фундаментальных аспектах прямого визуального отслеживания, уделяя особое внимание методам, основанным на регионах, и методам основанным на градиентах. В будущих статьях мы представим подробный математический вывод алгоритма Лукаса-Канаде с акцентом на выравнивание изображений. И наконец, мы представим, как реализовать эти методы в Python. Давайте начнем!

Читать далее
Total votes 16: ↑16 and ↓0+16
Comments2

Определение позы для нескольких людей с Mediapipe

Reading time6 min
Views4.9K

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

Читать далее
Total votes 2: ↑1 and ↓10
Comments1

Анализ и обработка изображений с использованием операций математической морфологии, python и библиотеки OPEV

Reading time6 min
Views14K

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

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

Для освоения материала подразумевается, что читатель обладает минимальными знаниями в области.

Читать далее
Total votes 2: ↑1 and ↓10
Comments2

Кейс: автоматизация тестирования верстки сайта с помощью скриншотов

Reading time8 min
Views11K

Привет, меня зовут Фахридин Джамолидинов, я специалист департамента тестирования в «Ростелеком ИТ». Занимаюсь автоматизацией тестирования основного сайта компании rt.ru. Наш сайт – это не только витрина для информирования клиентов и продаж услуг и товаров для сегментов B2C, B2B и B2O, он ещё предназначен для обслуживания текущих клиентов: FAQ, чат, формы обратной связи, платежные формы и т.п. Он постоянно обновляется, и каждый раз после выпуска новой версии нужно проверять сотни страниц с богатым, динамичным UI на работоспособность в браузерах и адаптивность вёрстки.

Конечно же на этапе разработки применяется практика design review со стороны наших продуктовых дизайнеров, но нет-нет да проблемы всплывали: где-то элементы перекрываются, съезжаются, не сохраняется единый стиль.

Осознавая, что ручное регрессионное тестирование существующего UI превращается в кошмар и отнимает кучу времени, мы решили автоматизировать данный процесс. Сегодня мы покажем, как работает автотестирование по скриншотам – будем акцентировать внимание на функционал aShot, или как помочь автотестам «видеть» ошибки.

Читать далее
Total votes 7: ↑3 and ↓4+1
Comments5

Нет времени объяснять, сделай автопилот

Reading time4 min
Views9K
image

Здравствуйте, товарищи!

На выходных проходил хакасборкатон — гонки на самоуправляемых моделях автомобилей на базе комплекта donkeycar при содействии Х5, FLESS и сообщества энтузиастов self-driving.

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

Хотя подобная задача для машинного обучения не нова, но сложности могут поджидать на всем пути: от невозможности заставить нормально работать вайфай до нежелания обученной модели пилотировать железо по треку. И все это в жестких временных рамках!

Когда мы собирались на это соревнование, сразу было понятно, что будет очень весело и очень сложно, ведь нам давалось всего 5 часов с учётом перерыва на обед чтобы собрать машинку, записать датасет и обучить модель.
Total votes 31: ↑30 and ↓1+42
Comments19

Датасеты для automotive

Reading time7 min
Views5K

1. A2D2 dataset от Audi


image

Наш набор данных включает в себя более 40 000 кадров с семантической сегментацией изображений и метками облака точек, из которых более 12 000 кадров также имеют аннотации для 3D-боксов. Кроме того, мы предоставляем немаркированные данные датчиков (прибл. 390 000 кадров) для последовательностей с несколькими циклами, записанных в трех городах.

Сегментация данных

Набор данных содержит 41 280 кадров с семантической сегментацией по 38 категориям. Каждому пикселю изображения присваивается метка, описывающая тип объекта, который он представляет, например пешехода, автомобиль, растительность и т. д.

Облако точек

Сегментация облака точек производится путем слияния семантической пиксельной информации и лидарных облаков точек. Таким образом, каждой 3D-точке присваивается метка типа объекта. Это зависит от точной регистрации камеры-лидара.

Рамки

3D-боксы предусмотрены для 12 499 кадров. Лидарные точки в поле зрения фронтальной камеры помечены 3D-рамками. Мы аннотируем 14 классов, имеющих отношение к вождению, например автомобили, пешеходы, автобусы и т. д.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

Information

Rating
Does not participate
Registered
Activity