Pull to refresh
1
0
Санжар Абдуганиев @sanchez

User

Send message

От парсинга к Private API. В гонке за производительностью

Level of difficultyMedium
Reading time4 min
Views5.9K

В статье будет затронут способ с применением ревёрсинга траффика Android-устройства для обнаружения endpoints, по которым можно взять то, что лежит в более приятной форме, нежели получаемое через парсинг HTML-дерева.

Читать далее
Total votes 20: ↑10 and ↓100
Comments6

КВЧ-радары изменят нашу жизнь. Военная технология идёт в смартфоны

Reading time5 min
Views29K

Слева направо: эволюция датчиков КВЧ-излучения со встроенным радаром, источник: Google AI

Миллиметровые волны (ММВ) или крайне высокие частоты (КВЧ) — диапазон радиоволн с длиной волны от 10 мм до 1 мм, что соответствует частоте от 30 ГГц до 300 ГГц. Они используются в военных и полицейских радарах, сканерах безопасности, КВЧ-терапии для лечения многих болезней, астрономических инструментах.

Но сейчас наступает эпоха, когда радары миллиметрового излучения (mmWave, 60 ГГц) созрели для широкого коммерческого применения. Скоро их разрешат встраивать в обычные смартфоны. Это открывает кардинально новые возможности по использованию портативных гаджетов: распознавание жестов в автомобилях, дистанционный мониторинг сна, отслеживание перемещения всех людей в офисе и многое другое.
Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments71

Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

Reading time7 min
Views111K

Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

Как телефон взаимодействует с автомобилем
Total votes 109: ↑109 and ↓0+109
Comments123

Как мы разработали интерактивную веб-схему для зрительных залов

Reading time6 min
Views6K
Иногда в приложении надо показать модель помещения – допустим, кинотеатра или даже целого стадиона, если вы продаете билеты на концерт Metallica. Если в зале 50-100 тысяч мест, то для их вывода на экран нужно продумать плавный zoom, скроллинг и другие детали. Итак, главный вопрос – как показывать тысячи элементов на экране, чтобы это было удобно для пользователей?

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

Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments4

Расширенная настройка web сервера (Apache2 + Nginx)

Reading time11 min
Views36K

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


В этой статье будет идти речь о настройке сервера с использованием: Apache2, Nginx, ngx_pagespeed, PHP, PHP-FPM, MariaDB и MemCached.

Читать дальше →
Total votes 21: ↑15 and ↓6+9
Comments10

Автоматизация квартиры

Reading time4 min
Views23K

Предыстория


Давняя мечта об автоматизации квартиры начала свое превращение в реальность с покупки квартиры в новостройке. Уже на этапе планирования ремонта вырисовались основные требования к инженерным сетям:

  1. гибкое управление освещением, водоснабжением, вентиляцией, отоплением и силовыми нагрузками;
  2. возможность реализации сценариев;
  3. удаленное управление и оповещение;
  4. централизованное отключение всего освещения;
  5. централизованное отключение неприоритетных нагрузок и водоснабжения;
  6. в перспективе – возможность голосового управления.
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments71

Comet — PHP-фреймворк для быстрых REST API

Reading time2 min
Views14K
Два года я писал микросервисы на Go, используя генераторы кода на базе Swagger. Получались довольно компактные и очень быстрые решения.

Сейчас использую PHP, поэтому решил найти средства для решения тех же самых задач в экосистеме языка. Знаю и люблю Laravel и Symfony, но тащить их в проекты не хотелось — слишком много батареек, за которые приходится расплачиваться крутой кривой входа в проект и производительностью.
PHP фреймворк для создания REST API

В итоге появился Comet — современный фреймворк на базе PHP для разработки быстрых API, использующий наработки команд SlimPHP и Workerman. Десятки тысяч RPS на обычной виртуальной машине и латенси менее миллисекунды!
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments59

Обезл***вание д***ных — это не просто рандомизация

Reading time7 min
Views27K


В банке есть проблема: нужно давать доступ к базе данных разработчикам и тестировщикам. Есть куча клиентских данных, которые по PCI DSS требованиям Центробанка и законам о персональных данных вообще нельзя использовать для раскрытия на отделы разработки и тестирования.

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

Так вот, не будет.

Дело в том, что база данных банка — это множество связанных между собой таблиц. Где-то они связаны по ФИО и номеру счёта клиента. Где-то по его уникальному идентификатору. Где-то (тут начинается боль) через хранимую процедуру, которая вычисляет сквозной идентификатор на основе этой и соседней таблицы. И так далее.

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

То есть прежде чем всё это обезличить, сначала надо разобраться в базе данных.
Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments24

Полная домашняя автоматизация в новостройке

Reading time8 min
Views218K
Три года назад стал претворять свою давнюю мечту в реальность — максимальная домашняя автоматизация квартиры, купленной в новостройке с нуля. При этом «отделку от застройщика» пришлось принести в жертву умному дому image и полностью переделать, а вся электрика, не связанная с автоматикой приехала с известного китайского сайта. Паяльник не потребовался, но знающих мастеров, электриков и плотников пришлось искать долго.


Панель управления квартирой в феврале 2020 года (Home Assistant)

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


Строительство нашего дома в процессе — ноябрь 2016 года
Умный дом в самом соку...
Total votes 138: ↑135 and ↓3+132
Comments514

Ресайз изображений на лету с помощью Nginx и LuaJIT (OpenResty)

Reading time3 min
Views6.6K

Уже довольно давно, вдохновившись статьей Ресайз изображений на лету был настроен ресайз изображений с помощью ngx_http_image_filter_module и все работало как надо. Но появилась одна проблема, когда менеджеру понадобилось получать изображения с точными размерами для заливки на некоторые сервисы, т.к. это были их технические требования. К примеру, если мы имеем оригинал изображения размером 1200x1200, и при ресайзе мы пишем что-то вроде ?resize=600x400, то получим пропорционально уменьшенное изображение по наименьшему краю, размером 400x400. Так же невозможно получить изображение с бОльшим разрешением (upscale). Т.е. ?resize=1500x1500 вернет все тоже изображение 1200x1200


На помощь пришла статья OpenResty: превращаем NGINX в полноценный сервер приложений для понимания как работает Nginx с Lua и сама библиотека для Lua isage/lua-imagick — Lua pure-c bindings to ImageMagick. Почему было выбрано такое решение, а не, скажем, что-нибудь на python — потому что это быстро и удобно. Вам даже не понадобится создавать никаких файлов, все прямо в конфиге Nginx (не обязательно).

Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments21

Бот в telegram, который следит за доменом

Reading time4 min
Views16K
Привет жителям Хабра.

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

Выбор пал на бота, который будет получать информацию о жизни домена (whois), затем доставать оттуда дату регистрации и добавлять этот домен в БД (mysql), с последующий привязкой к пользователю и уведомлением в telegram.

Исходный код в моем репозитории на гите.

Мне захотелось использовать MVC структуру, что оказалось на мой взгляд не совсем верным, так как view не был задействован и это уже нельзя назвать mvc, но да ладно…
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments26

Как перестать растрачивать время разработчиков на технический долг

Reading time5 min
Views9.8K


Вы знаете, каково это. Впихнуть всё необходимое в спринт и так весьма непросто, а ведь ещё нужно где-то найти дополнительные 10–20% времени разработчиков на возврат технического долга. Если вы когда-либо отстаивали необходимость выкраивания времени на это, то вы знаете, что это походит на крестовый поход эпических масштабов.


Но сделать это можно, и в этом руководстве мы выясним, как именно.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments5

Методика реконструкции утраченных зданий по фотографиям

Reading time5 min
Views10K
Привет, Хабр! Хочу поделиться опытом воссоздания трехмерной модели моей школы, которая сгорела несколько лет назад. Я расскажу о методике работы с фотографиями, как подогнать перспективу виртуальной камеры под снимок. Как облегчить задачи моделирования. И постараюсь сделать это не скучно даже для человека далёкого от 3Д.


Total votes 46: ↑46 and ↓0+46
Comments24

Вытаскиваем видео с камеры по DVRIP с помощью PHP

Reading time13 min
Views7.6K
В прошлой статье я обещал показать скрипт, которым тяну видео с камеры и, хотя с тех пор прошло все же некоторое количество времени, обещания же нужно выполнять. Вот я и выполняю.

Так уж вышло, что с асинхронностью в мире серверного web ассоциируется все что угодно, но не PHP.

Ну потому что, ну вы знаете, вот эта умирающая модель, утечки памяти, да и вообще в PHP из коробки нет ничего, кроме stream_select() и stream_set_blocking().

Где-то там, на PECL, есть какой-то libuv, который в принципе всего лишь обертка для сишных функций оригинальной библиотеки, поэтому его использование как есть бросает вам некоторые вызовы. Да и вообще, кто в здравом уме будет этим заниматься?

Но если мы перестанем жить в мире PHP4 и немного вернемся в современные реалии, то увидим, что за последние годы дела несколько изменились. У нас появились такие интересные инструменты как ReactPHP и AmPHP, компоненты которых хорошо покрывают функционал Node.js, а наличие генераторов позволяет писать асинхронный код в удобном стиле, подобном async/await, избегая всех вот этих бесконечных коллбеков в коллбеках и километровых цепочек .then().then().then().

Так что поэтому сейчас, как мне кажется, практически нет тех задач из мира Node.js, которые не мог бы решить PHP. Но если таковые еще остались, то все упирется только в наличие каких-то отдельных библиотек, а не отсутствие возможностей как таковых.
It may surprise people to learn that the PHP standard library already has everything we need to write event-driven and non-blocking applications. We only reach the limits of native PHP’s functionality in this area when we ask it to poll thousands of file descriptors for IO activity at the same time. Even in this case, though, the fault is not with PHP but the underlying system select() call which is linear in its performance degradation as load increases.

amphp.org/amp/event-loop
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments16

Преимущества облачного распознавания лиц

Reading time7 min
Views11K
image
Близкое будущее

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

Многие владельцы смартфонов каждый день используют face recognition, но в мобильных устройствах скорость распознавания не критична, а число пользователей редко больше одного-двух человек. Для офисных и уличных систем (при массовом распознавании) применяются другие технологии.

Недавно на Хабре обсуждали новость: московские сетевые кофейни «Правда кофе» и OneBucksCoffee начали тестировать в своих заведениях сервис распознавания лиц.

Кофейни используют наше техническое решение. И сегодня мы расскажем о нём подробнее. Конечно, о самой технологии мы уже говорили, но появилось кое-что новое — решение стало по-настоящему облачным. А это всё меняет.
Читать дальше →
Total votes 18: ↑13 and ↓5+8
Comments34

Digital-мероприятия в Москве c 21 по 28 октября

Reading time3 min
Views683

Подборка мероприятий на неделю


image


Международный Форум «Открытые инновации»


  • 21 октября (понедельник) — 23 октября (среда)
  • Большой бул 42корп1
  • от 1 500 р.
  • Форум «Открытые инновации», проходящий ежегодно с 2012 года, — крупнейшее в России и одно из самых масштабных в мире конгрессно-выставочных мероприятий, демонстрирующее основные тенденции и ключевые достижения в инновационных сферах экономики.

Конференция Callday 2019


  • 22 октября (вторник)
  • ВТБ Арена, Ленинградский просп. 36
  • бесплатно
  • 22 октября на ВТБ Арене пройдет большая конференция про бизнес, сквозную аналитику и эффективный маркетинг Callday 2019. Организаторы: МегаФон и Calltouch.
    Основатели и топ-менеджеры таких компаний, как amoCRM, Cian, Hoff, Dostavista Global, Tilda Publishing, ВсеИнструменты.ру, Ярмарка Мастеров (livemaster. ru), МегаФон и Calltouch расскажут, как из одного офисного стола стать всероссийской компанией. Как пережить кризисы. Как расширять рынки. Как поставить на кон всё и выиграть.
    На ВТБ Арене соберется более 5 000 участников – владельцев бизнеса, digital-директоров, предпринимателей и маркетологов.
    Для тех, кто не сможет приехать лично, предусмотрена онлайн-трансляция. На Сахалине, во Владивостоке, Санкт-Петербурге или Краснодаре – будьте с нами на Callday 2019.
    И, самое главное, все участники смогут открыто обсудить и задать вопросы спикерам в телегам-канале.
    Станьте частью действительно масштабного события.
    Участие бесплатное. Количество мест ограничено, регистрируйтесь прямо сейчас.
Читать дальше →
Total votes 13: ↑7 and ↓6+1
Comments0

Локализация пуш-сообщений в мобильных приложениях

Reading time2 min
Views3.2K
Получив на поддержку очередной проект бэкенда мобильного приложения, я, к сожалению, столкнулся с тем, что массовая рассылка пуш-сообщений в топики (topics) не локализована. В интернете я также не нашел подробного материала по этому вопросу. И все, что я нашел, относилось к локализации на стороне клиента, а это не всегда удобно, т.к. требует заранее определить все возможные варианты сообщений и создать для них ресурсные файлы со всеми возможными переводами.

В своем сообщении я расскажу, как можно сделать локализацию пуш-сообщений в топиках на стороне бэкенда мобильного приложения.
Читать дальше →
Total votes 11: ↑7 and ↓4+3
Comments4

Windows 10 + Python = VS Code + WSL

Reading time3 min
Views32K
image

Microsoft… Технологических локомотивов нашего времени. Ни для кого не секрет что они крутые, а также, что они поглощают все больше и больше… Всего. К счастью последнее время они только радуют меня своим потенциалом. А после выступления Satya Nadella, где он рассказал миру о том, что Windows больше не является основным продуктом компании, так как они положили курс на внедрение своих API…. Повсюду

Для разработчиков ПО они так же не скупятся. C#, Azure, Visual Studio… Но сейчас пойдет речь о Python, ведь для него местечко здесь тоже пригрели.

Кратко о WSL


С обновлением Windows появилась возможность использовать такую штуку, как WSL (Windows Subsystem for Linux). Не так давно появилась WSL2 с ОЧЕНЬ крутыми доработками. WSL2 использует новейшую и самую новую технологию виртуализации для запуска ядра Linux внутри упрощенной служебной виртуальной машины. Это значит, что такие атрибуты, как изоляция и замедление работы здесь отсутствуют.
Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments36

9 полезных браузерных расширений для разработчиков (cписок на 2020 год)

Reading time4 min
Views19K
Как упростить себе жизнь при помощи браузерных плагинов.

Хитрые веб-разработчики умеют пользоваться браузером на уровне «god-mode». Расширения(плагины, add-on) чрезвычайно полезны, когда речь идет об улучшении рабочей среды и повышении производительности написания кода.

Не за горами 2020 год. Появилось много новых расширений. Я собрал наиболее полезные расширения для веб-разработчиков и поместил их в один список.

Refined GitHub


Refined Github упрощает интерфейс GitHub и добавляет полезные улучшения.

image

Refined Github

«Надеемся, что GitHub заметит как необходимы эти улучшения и добавит некоторые из них. Поэтому, если вам нравится какое-либо из этих улучшений напишите, пожалуйста, в службу поддержки GitHub об этом».
— создатели Refined Github.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments8

Немецкая полиция взяла штурмом военный бункер, в котором разместился объявивший независимость дата-центр

Reading time8 min
Views131K

Схема бункера. Рисунок: полиция Германии

CyberBunker.com — пионер анонимного хостинга, который начал работу в 1998 году. Компания разместила серверы в одном из самых необычных мест: внутри бывшего подземного комплекса НАТО, построенного в 1955 году как защищённый бункер на случай ядерной войны.

Клиенты становились в очередь: все серверы обычно были заняты, несмотря на завышенные цены: VPS стоил от €100 до €200 в месяц, без учёта платы за установку, при этом планы VPS не поддерживали Windows. Зато хостер успешно игнорировал любые жалобы DMCA из США, принимал биткоины и не требовал от клиентов никакой личной информации, кроме адреса электронной почты.

Но теперь «анонимному беспределу» пришёл конец. Ночью 26 сентября 2019 года бойцы немецкого спецназа и полиции штурмом взяли защищённый и охраняемый бункер. Захват произведён под предлогом борьбы с детской порнографией.
Читать дальше →
Total votes 105: ↑102 and ↓3+99
Comments426
1
23 ...

Information

Rating
Does not participate
Location
Узбекистан
Date of birth
Registered
Activity