Почему у монетизаторов нет души, а токсичные члены команды — самые эффективные


7 июля, в 20:00 в наших соцсетях пройдет прямой эфир с Вячеславом Дреером. Слава монетизатор, гейм-дизайнер и продюсер игр с 12-летним стажем. Работал в игровых подразделениях веб-мани, mail.ru, Фотостраны и принимал участие в более, чем 50 других проектов.

Зачем приходить на эфир?

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

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

О чем расскажет Слава:

  • Все о профессии монетизатора: кто эти люди, которые раскидывают по игре платные плюшки и как это делать правильно
  • Откуда берутся большие пласты игр, в которые люди с интересом играют, но игра при этом не зарабатывает? Что делает монетизатор с такими играми?
  • В каких случаях нужны монетизаторы в проекте?
  • 4 архетипа пользователей: хардкорный игрок, школьник, домохозяйка и офисный сотрудник, который просто играет чтобы отдохнуть. 4 жизни, которые проживает монетизатор с каждой игрой
  • Неграмотный сбор аналитики в играх: как нельзя делать, если не хотите остаться с популярной игрой на нулях
  • Математика стоимости товаров в играх: как рассчитать стоимость каждой плюшки и создать их такими, чтобы их покупали
  • Почему нельзя делать справедливые игры, где у всех равные возможности?
  • Как считать баланс игр: баланс и псевдобаланс, 2 типа псевдобаланса PVE и PVP, почему надо считать сложный баланс и как это делать
  • Самый главный человек в игровой команде — игровой программист. Почему?
  • Может ли специалист высокого уровня существовать за пределами больших компаний? Как это сделать?
  • Существуют ли на самом деле люди, которые в одиночку создали игры мирового уровня?
  • Можно ли создать игру почти бесплатно?
  • Кто такой хороший менеджер, как им стать и как набрать крутую команду?
  • Два самых главных качества менеджера?
  • Что делать, если проработал в индустрии 8 лет, но особых достижений нет — какие выводы о себе делать и как анализировать свою работу? Стоит ли этим заниматься дальше? Нужны ли компаниям такие люди?
  • Почему мода выгонять из команды токсичных людей плохая практика? Почему эти люди одни из самых ценных в команде? Являются ли они проблемой, стоит ли их избегать? Существуют ли они вообще?
  • Какие книги и какие лекции надо почитать прежде чем делать свою игру?

Где пройдет стрим

Этот стрим пройдет только в нашем инстаграм-аккаунте

Если вы ненавидите пуш-уведомления, вы можете подписаться только на пуши конкретного аккаунта.

Это делается очень просто

Будет ли запись?

Если вы не успеваете послушать эфир онлайн, вы все равно можете задать вопрос и услышать на него ответ в записи.

Чтобы не забыть посмотреть запись, вы можете также включить уведомление о новых постах: как только вы выложим запись в IGTV, вам придет уведомление.

До встречи в эфире!

ссылка на оригинал статьи https://habr.com/ru/company/ruvds/blog/509760/

Security Week 28: уязвимость в powerline-экстендере

Не кажется ли вам, что исследований об уязвимостях в домашних роутерах стало меньше? Нам не кажется, а недавно к роутерам добавились плохо защищенные устройства, передающие данные по электрическим проводам. Такие адаптеры ничем, кроме способа подключения, не отличаются от обычных маршрутизаторов и так же содержат полноценный управляющий софт, не лишенный недостатков. В устройстве Tenda PA6 были найдены (новость, оригинальная публикация) три уязвимости, две из которых позволяют получить полный контроль над этим «удлинителем Wi-Fi».

Две уязвимости из трех относятся к одному классу: веб-интерфейс устройства не проверяет введенные пользователем данные, что дает возможность злоумышленнику запустить произвольный код с наивысшими привилегиями. В одном случае эксплуатируется функция, позволяющая переименовать одно из powerline-устройств в сети. В другом — функция добавления устройства Wi-Fi в список доверенных. На пути потенциального взломщика есть только одна проблема — два метода выполнения команд с правами рута не работают без авторизации. Но, как обычно, это не оказалось серьезным препятствием из-за стандартного пароля для доступа к веб-интерфейсу: admin.

Третья уязвимость вовсе не требует авторизации, но и контроль над устройством не обеспечивает. Для связи с сетевыми адаптерами (которых, по логике Homeplug-соединений, должно быть два или более) используется порт 48912, при подключении к которому можно поменять имя внутренней сети для обмена данными через электрические провода. После изменения имени сети меняется также ключ для шифрования данных — это сделано в том числе для исключения конфликтов между двумя разными сетями Homeplug, и, судя по всему, данный интерфейс используется при первоначальной настройке. Результат: при желании можно организовать циклическую перезагрузку адаптеров и полную их неработоспособность.

Как обычно, при анализе прошивки были найдены «хвосты» режима отладки: через веб-интерфейс можно получить полный дамп прошивки, а логин и пароль для доступа к устройству через «аварийное» UART-соединение вшиты в код. Что еще печальнее, на обращения исследователей из лаборатории IBM производитель не ответил. Комбинация дефолтного пароля и двух обнаруженных уязвимостей позволяет атаковать устройство удаленно, достаточно лишь заманить его владельца на подготовленную веб-страницу.

Что еще произошло:
Десятибалльная уязвимость обнаружена и закрыта в корпоративных сетевых решениях F5 BIG-IP.

Эксперты «Лаборатории Касперского» подробно разбирают реинкарнацию буткита Rovnix. Исходный код этого зловреда утек в открытый доступ еще в 2013 году, а свежая модификация распространяется под видом «важного сообщения от ВОЗ» по поводу эпидемии коронавируса.

Cisco закрывает уязвимость в сетевых свитчах для малого бизнеса. Методом «грубой силы» можно подобрать текущий идентификатор сессии и перехватить контроль над устройствами.

Издание ArsTechnica публикует результаты интересного исследования: какими словами можно активировать голосовой помощник, помимо штатных. Например, вместо «Hey Siri» можно сказать «a city». Причина такого поведения — в желании разработчика повысить шансы на срабатывание системы, когда к ней обращаются, допуская при этом ложную активацию. Проблема заключается в том, что от таких срабатываний приватные переговоры пишутся и расшифровываются на сервере вендора.

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

В конце июня мы писали об уязвимостях в (как минимум) 79 роутерах Netgear. Спустя полгода после уведомления вендора можно оценить скорость выпуска патчей: только 28 устройств получили обновление.

ссылка на оригинал статьи https://habr.com/ru/company/kaspersky/blog/509798/

Как запустить PULSE (face-depixelizer) на Linux в Windows 10 (WSL)? Туториал

В один из весенних вечеров 2020 года я прочитал статью о нейросети face-depixelizer. После изучения, оказалось, что это своего рода фронтэнд для движка PULSE. Который базируется на нейросети StyleGAN (генерирует лица со случайными чертами).

В этом туториале по шагам расскажу и покажу, как я установил Ubuntu на Windows 10 (WSL), настроил окружение для экспериментов с PULSE, закинул очередную исходную фотографию и получил неплохой результат.
Результат восстановления исходного изображение в PULSE
Анимация морфинга и видео-туториал — далее.

Что нам дано

Face-Depixelizer — фронтэнд для работы с PULSE.

PULSE — движок на нейросети StyleGAN. Смысл его в том, что он восстанавливает изображения лица человека из нечёткой фотографии. И, кстати, это научная работа для CFV.

StyleGAN — генеративная состязательная нейросеть от NVidia, генерирует случайное лицо несуществующего человека (на самом деле будет забавно, если такой чел уже существует).


PULSE, наконец-то, примерно нам скажет, как выглядит тот самый человек, который моргнул на этом фото!

Возьмёмся за PULSE

Мне стало интересно, что же под капотом PULSE и, вообще, как его можно завести локально.
Для интереса, диагонально просмотрев научную статью, я стал думать, как с чего начать и как это всё установить (при том что ни разу не ставил себе «нейросети»).

А начал я с того, что как можно скорее, пока не упал гитхаб (если вы понимаете о чём я), перешёл к проекту PULSE. Где автор указал такой вариант установки: анаконда и питон. Т.е. во всяком случае требуются платформо-зависимые пакеты (библиотеки). Я по большей части — пользователь Windows, чем Linux. Но, всё равно, хотелось бы запустить без правок и утомительного подбора библиотек. А без Linux этого никак не сделать.

Некоторое время назад часть айти-специалистов холиварили про линукс в винде. И скажу я вам, что, по мне — зря. Вещь удобная, хотя до сих пор не доделанная.

WSL — подсистема Windows для Linux позволяет разработчикам запускать среду GNU/Linux, включая большинство программ командной строки, служебных программ и приложений, непосредственно в Windows без каких-либо изменений, избавляя от необходимости использовать отдельную виртуальную машину.

Т.е. это доступ к командной строке linux из винды. Терминал с линуксом запускается так же просто, как cmd. Удобно.

Приступим

Для работы с терминалом здесь и в видео буду использовать Windows Terminal (из Windows Store).

Кратко говоря

Проверяем требования

  • NVidia видеокарта с поддержкой CUDA (нейросеть StyleGAN использует CUDA). Список поддерживаемых видеокарт здесь
  • Экспериментальные NVidia драйвера с поддержкой CUDA в WSL2 (пока не лагает, играл).
  • Windows 10 version 2004 build 20150 и выше (пока она доступна в Windows Insider Program на раннем доступе), с обновлениями компонентов. С чего начать и как установить здесь
  • Как установить WSL2 (4.19.121 и выше; опять же пока только в раннем доступе Windows) для установки linux системы.
  • Ubuntu 18.04 для WSL2 из Windows Store.

Подготавливаем Ubuntu

  • Устанавливаем cmake
  • Устанавливаем unzip, понадобится для распаковки проектов из гитхаба
  • Устанавливаем NVidia CUDA Toolkit.

Проверяем работоспособность CUDA

  1. Скачиваем примеры CUDA
  2. Компилим и запускаем.

Устанавливаем окружение

Скачиваем и устанавливаем анаконду.

Устанавливаем PULSE

  1. Скачиваем с гитхаба PULSE
  2. Редактируем pulse.yml:
    • Добавляем каналы anaconda, conda-forge
    • Удаляем ссылки на конкретные сборки
  3. Устанавливаем окружение PULSE, используя отредактированный файл
  4. Проверяем работоспособность Pytorch и CUDA Toolkit в Python.

Экспериментируем

  1. Используя pip, обновляем jupyter notebook до последней версии
  2. Подгоняем изображение (в issue пишут, что PULSE работает с квадратным изображением 1024*1024 и тремя каналами RGB, т.е. без прозрачности)
  3. Увеличиваем\уменьшаем количество шагов и погрешность
  4. PROFIT!

Выше — анимация морфинга, созданная из промежуточных изображений.

Как говорится: «лучше один раз увидеть, чем сто раз услышать». На видео все шаги, начиная с обновления WSL2 и установки Ubuntu.

А теперь…

Подробнее

Требования

В очередной раз повторю требования (… и после сотого редактирования, в сотый раз вспомню Фаулера):

  • Windows 10 version 2004 build 20150 и выше
  • WSL2 (версия 4.19.121 и выше)
  • Ubuntu 18.04 для WSL2 — сам дистрибутив из Windows Store. Устанавливается после наката всех обновлений Windows 10 Insider в т.ч. WSL2
  • NVidia Driver WSL — экспериментальная версия драйверов с поддержкой новой версии WSL2. Требуется согласие на участие в экспериментальной программе NVidia. Но не всякая карта подойдёт.

Подготовка ОС

Windows 10

Цель: Windows 10 version 2004 build 20150 и выше

Предподготовка:

  1. Запускаем обновления
  2. После чего, при помощи приложения winver, проверяем текущую версию винды
  3. Если версия вашей винды ниже Windows 10 версии 2004 build 20150, то потребуется выполнить нижеследующие шаги
  4. А если всё ок, поздравляю, вам не придётся вступать в Windows Insider Program! Смело приступайте к следующему этапу!

Что делаем:

  1. Вступаем в Windows Insider Program
  2. Далее, в параметрах системы «Обновление и безопасность»:
    • Вкладка «Программа предварительной оценки» (если пустой экран, см. секцию «Решение проблем», ниже):
      1. Параметры оценки: «Ранний доступ»
      2. Нажимаем «Начать».
    • Вкладка «Центр обновления Windows»:
      1. В «Дополнительно» обязательно разрешаем «При обновлении получать обновления для других продуктов Майкрософт» (это для установки WSL2 4.19.121 и выше)
      2. Обновляемся.

Проверка: запускаем winver. В открывшемся диалоговом окне смотрим версию.

NVidia Driver CUDA WSL

Цель: Установка последней версии NVidia Driver CUDA WSL

Что делаем:

  1. Заходим на страницу
  2. Если ещё не зарегались, регаемся; соглашаемся на участие в экспериментальной программе
  3. Скачиваем и устанавливаем.

Проверка: будет на этапе «проверка работоспособоности CUDA»

WSL2

Цель: WSL2 версии 4.19.121 и выше

Предподготовка:

  1. Обновляем винду до Windows 10 version 2004 build 20150 и выше, если не обновилии по шагам выше
  2. Если, после выполнения в терминале:
    wsl --update

    будет выведено содержимое справки (а-ля wsl --help), то у вас старая версия. Тогда приступаем к выполнению шагов ниже

  3. Если выведется версия от 4.19.121 и выше, то пропускаем этот этап.

Что делаем:

  1. Запускаем PowerShell с правами админа и последовательно выполняем:
    • Включаем дополнительный компонент «Подсистема Windows для Linux»:
      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    • Затем, включаем компонент «Virtual Machine Platform»:
      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    • Перезагружаемся.
  2. Обновляем WSL:
    wsl --update
  3. Далее, устанавливаем вторую версию WSL — как дефолтную для всех будущих дистрибутивов:
    Для этого запускаем PowerShell с правами админа и выполняем:
    wsl --set-default-version 2

Проверка: команда:

wsl --update

[после установки обновления] выведет версию 4.19.121 и выше.

Ubuntu 18.04 на WSL2

Цель: Ubuntu 18.04 на WSL2

Предподготовка: если на WSL ранее была установлена Ubuntu 18.04 (нижеследующую ветку я не проверял, но было бы неплохо, если вы укажете в комментариях, кто сталкивался, помогло ли):

  • Проверяем её в списке:
    wsl --list --all -v
  • Для этого дистрибутива переключаем версию WSL на ver.2:
    wsl --set-version Distro 2

    Например:

    wsl --set-version Ubuntu-18.04 2
  • Перезагружаемся.

Что делаем:

  1. Заходим в Windows Store
  2. Ищем Ubuntu 18.04 и устанавливаем

Проверка: открываем терминал, выполняем:

wsl --list --all -v

видим Ubuntu 18.04 Version 2

Подготовка Ubuntu

Предподготовка

  1. Обновляем индексы пакетов:
    sudo apt update
  2. Устанавливаем cmake (для установки dlib):
    sudo apt install cmake
  3. Для распаковки zip архивов устанавливаем, к примеру, утилиту unzip:
    sudo apt install unzip

Устанавливаем CUDA Toolkit

  1. Добавляем CUDA в индекс пакетов:
    sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub  sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'  sudo apt update
  2. Устанавливаем CUDA Toolkit:
    sudo apt install -y cuda-toolkit-11-0

Проверяем работоспособность CUDA Toolkit

Для этого запускаем примеры (информативна программа deviceQuery):

  1. Скачиваем:
    wget https://github.com/NVIDIA/cuda-samples/archive/master.zip
  2. Разархивируем:
    unzip master.zip
  3. Переходим и билдим (всё):
    make
  4. Запускаем:
    ./bin/x86_64/linux/release/deviceQuery

    Приложение выведет список совместимых устройств.

Устанавливаем Anaconda

  1. Скачиваем дистрибутив по ссылке
  2. Запускаем:
    bash Anaconda3-2020.02-Linux-x86_64.sh

    Во время инсталляции:

    1. Соглашаемся на лицензию
    2. Оставляем PREFIX
    3. Соглашаемся на инициализацию
  3. Перезапускаем терминал, либо выполняем:
    source ~/.bashrc

Настройка окружения в анаконде

Настраиваем PULSE

  1. Скачиваем:
    wget https://github.com/adamian98/pulse/archive/master.zip
  2. Разархивируем:
    unzip master.zip
  3. Создаём бэкап pulse.yml:
    cp pulse.yml pulse.yml.bak
  4. Фиксим pulse.yml:
    1. Добавляем каналы (это источники пакетов):
      • conda-forge
      • anaconda
    2. Убираем все референсы на конкретную версию пакета.
      Пример: из строки "zstd=1.3.7=h5bba6e5_0" убираем последнюю часть, начиная со знака равенства: "=h5bba6e5_0". В итоге получим "zstd=1.3.7".

      Делаем это либо руками, либо через утилиту sed:

      sed '/==/b; s/=\([^=]*\)$//' pulse.yml > pulse1.yml

      Примечание: первая часть означает, мол, если видим "==", то прыгаем в конец regexp скрипта

  5. Создаём окружение по файлу pulse1.yml:
    conda env create -f pulse1.yml
  6. Может быть и такое, что версия какого-то файла не найдена NotResolverPackage. Для примера возьмём libfortran 3.0.1:
    1. Гуглим conda libfortran
    2. В Anaconda Cloud в Files видим эту самую версию (3.0.1), но, к сожалению, она для osx-64
    3. Продолжаем поиск в Anaconda Cloud, видим в канале cloud-forge только предыдущую версию 3.0.0-1 для linux-64. Подходит!
    4. Заменяем в файле pulse1.yml libfortran=3.0.1 на libfortran=3.0.0=1
    5. Ещё раз выполняем:
      conda env create -f pulse1.yml
    6. Если пошла инсталляция, отлично!
    7. Если требуются другие пакеты, обязательно обращаем внимание на каналы, по необходимости добавляем.
  7. Ждём, когда установится
  8. После чего активируем:
    conda activate pulse

Проверяем работоспособность Pytorch и CUDA в python

  1. Этот скрипт:
    from __future__ import print_function import torch x = torch.rand(5, 3) print(x)

    Должен вывести что-то подобное:

    tensor([[0.3380, 0.3845, 0.3217], 	[0.8337, 0.9050, 0.2650], 	[0.2979, 0.7141, 0.9069], 	[0.1449, 0.1132, 0.1375], 	[0.4675, 0.3947, 0.1426]])
  2. А этот:
    import torch torch.cuda.is_available()

    Выведет:

    True

На этом этапе, по идее, можно остановиться. Но я пошёл дальше и для экспериментов установил jupyter notebook.

Jupyter Notebook – невероятно мощный инструмент для интерактивной разработки и представления проектов в области наук о данных.

Работа с PULSE

Приступим
  1. Активируем окружение pulse:
    conda activate pulse
  2. Устанавливаем юпитер:
    pip install jupyter
  3. Запускаем:
    jupyter notebook

    И далее:

    1. Создаём новую тетрадь New->Python3 (notebook)
    2. Вставляем туда код из файла
    3. Кидаем в корень проекта исходный файл, переименовав его в source.png:
      cp /mnt/c/Users/ПОЛЬЗОВАТЕЛЬ/Desktop/face1.png source.png
    4. Запускаем. Ждём

Заметки

  1. Очень вероятно, потребуется изменение числа шагов до 500-800, а также изменение eps
  2. Изображение должно быть:
    1. Квадратным, говорят, лучше 1024*1024
    2. В формате PNG
    3. С тремя каналами (RGB) а не с четырьмя RGBA
  3. Если выдает ошибку: "Could not find a face that downscales correctly within epsilon", учитываем следующее:

    Необходимо изменить steps и\или eps, таким образом, чтобы по достижению числа шагов (steps), значение eps было не менее L2. Ниже пояснение.

    Результат сопровождается выводом достигнутых параметров:

    BEST (400) | L2: 0.0013 GEOGROSS: | TOTAL: | time: ...

    Где 400 — это (заданное) достигнутое число шагов (steps), L2 — интересуемая величина, она должна быть меньше, чем заданная eps (как я понял, это — точность оптимизации; товарищи AI-разработчики, подскажите, что это?).

    Так вот, к примеру, необходимо увеличить что-то одно или всё вместе: steps (поставить больше 400) и\или eps (поставить eps=0,0013 и больше, т.е. должно быть так, что eps>=L2).

  4. Если есть желание посмотреть промежуточные фотографии для каждого шага, добавляем параметр -save_intermediate
    Изображения сохраняются в папку runs/: в папке HR — high resolution, в папке LR — low resolution )

Возможные проблемы — ниже.

Решение проблем

Если вы не только столкнулись с ошибками, но и решили их, пишите, добавлю сюда.

Белый экран в Windows Insider Program

Вариант: вы под другим пользователем, не хватает привилегий.
Решение: см. ссылку. Но у меня решилось без изменений реестра.

Не запускаются CUDA samples

Варианты:

  1. Ваша видеокарта не поддерживается
  2. Вы не накатили последнюю версию WSL2
  3. Вы не установили последнюю (экспериментальную) версию драйверов NVidia Driver CUDA WSL

При запуске jupyter notebook выкидывает ошибку

Ошибка: Start : This command cannot be run due to the error: The system cannot find the file specified.
Решение: копируем строку подключения в браузер (с другими решениями не разбирался).

При запуске PULSE постоянно вываливается ошибка

Ошибка: Google Quota Exceeded
Решение: копируем исходный файл у меня и кидаем в корень — в папку cache (создаём, если её нет).

Либо:

  1. Скачиваем файл по первой google ссылке из PULSE.py
  2. Переименовываем его по шаблону md5hash_synthesis.pt, где md5hash — md5 хэш скаченного файла (в нынешней версии это 6b943ee69b8491ac40e8e9ced6175659_synthesis.pt)
  3. Кидаем в папку cache (создаём, если её нет в корне директории, где лежит PULSE)

При запуске PULSE, либо проверке Pytorch выкидывает ошибку

Ошибка: ModuleNotFoundError: No module named 'torch'
Решение: если вы проверяли pytorch и он работает, то это означает, что вы не активировали окружение pulse. Для этого выполните следующую команду:

conda activate pulse

Заключение

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

Всем спасибо за чтение!

Список литературы и ссылки на утилиты, драйвера

  1. Инструкция по установке NVidia Driver для CUDA на WSL
  2. Драйвера NVidia для CUDA под WSL
  3. Список поддерживаемых CUDA видеокарт
  4. Примеры CUDA
  5. Инструкция по установке WSL2 на Windows 10
  6. Справка и знакомство с Windows Insider Program — ранний доступ к версиям Windows
  7. Инструкция по установке Anaconda на Linux систему
  8. Список дистрибутивов Anaconda
  9. Jupyter Notbook — аналитика и эксперименты
  10. Репозиторий PULSE
  11. Репозиторий Face-Depixelizer
  12. Репозиторий StyleGAN

ссылка на оригинал статьи https://habr.com/ru/post/509800/

Какой хороший app store Xiaomi. Удалил приложение из своего магазина после обновления, потому что оно на русском языке


Статья и голосование о том можно ли пользоваться магазином приложений от Xiaomi совместно или (упаси Боже) вместо Google Play, если ты разработчик. Приложения публикуются чуть ли не вручную на стороне Консоли GetApps сами работниками Xiaomi. Приложение исчезает после обновления и не доступна, ни новая, ни старая версия приложения. В то время как число мобильных устройств Xiaomi в России больше 17%*
Приложение более чем с 1 000 000 пользователей в Google Play.
Хотелось бы услышать официальный ответ Xiaomi

Присказка
Я занимаюсь разработкой мобильного приложения и размещал его в Google Play.
Потом узнал, что какая-то третья фирма разместила его в Xiaomi GetApps.
Я захотел сам контролировать процесс публикации приложений в Xiaomi GetApps
Для этого нужно было подписать пустой проект своим ключом, по-моему.
Получилось.

Сказка
И вот, недавно, решил я обновить своё приложение в Xiaomi GetApps.
Загрузил новую версию (нужно было ещё загружать каждый раз иконку приложения и описание не только нововедений, но и описание самого приложения).
Смотрю, а регион распространения только Mainland China.

И другой нельзя выбрать, хотя приложение доступно в клиенте GetApps в России.

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

Мол, юзеры просят новую версию, что ты её не выкладываешь?
Я пишу по обратному адресу: overseas-dev@xiaomi.com
Что мол, я уже выложил новую версию, почему Вы не рассматриваете моё приложение?
Почти сразу приходит отказ в публикации новой версии приложения и текущую версию приложения тоже снимают с публикации
Причина в том, что приложение не переведено на Китайский язык.

Я говорю: Так я не хочу в Китае распростаранять своё приложение, хочу в США, Европе и России.
Они почти сразу: Ок. выйдите и зайдите в консоль разработчика снова.

Я захожу в консоль разработчика и вижу следующее:

Ну Россия есть, уже спасибо. А Украина? А СНГ? А Европа? Представлена только Испанией?

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

Ну я снял disabled=«disabled»

Тогда хоть начали показываться ошибки. Сначала GetApps сказал мне, что, раз приложение только на Русском, то его можно публиковать только в России. А в/на Украние, Белоруссии и Германии рускоязычных очевидно нет? Хотя европейских стран вообще нет в моей GetApps console, кроме Испании.
Были ещё какие-то 1-2 ошибки, я поправил.
Ну думаю опубликую. Нажимаю и вижу:

Вижу ошибку Null. И что мне делать? написал на overseas-dev@xiaomi.com
Ноль реакции.

А в это время текущая версия приложения так и не опубликована, хотя была опубликована более года до этого.

Хотел позвонить в Российское представительсво компании Xiaomi по телефону горячей линии
+7-800-775-66-15, мне отвечает автоинформатор, что абонент не доступен.

Звук ответа автоинформатора: gofile.io/d/zf0DQI

Это было 06.07.2020 в 11:59
в 14:45 телефон горячей линии заработал. Можно написать об этом обо всём на service.global@xiaomi.com, пока жду ответа от overseas-dev@xiaomi.com

upd 06.07.20 15:56: написал на service.global@xiaomi.com, поставил в копию overseas-dev@xiaomi.com и дал ссылку на эту статью.
17:37 Ноль реакции, даже письма в ответ не прислали.

Кстати, на описание приложения в GetApps дают всего 400 символов.

На описание приложения дают 400 символов, Карл.

А на описание нововедений дают 500 символов:


GetApps console сейчас показывает, что приложение не опубликовано в GetApps:
«NOTHING HERE»

Это я ещё опустил, как мне отвечали на китайском.

Xiaomi GetApps это сказка.
Приложение более чем с 1 000 000 пользователей в Google Play.
Хотелось бы услышать официальный ответ Xiaomi

*Число мобильных устройств Xiaomi в России больше 17%: www.ixbt.com/news/2020/03/23/neozhidannaja-pjaterka-liderov-rossijskogo-rynka-smartfonov.html

ссылка на оригинал статьи https://habr.com/ru/post/509806/

PVS-Studio теперь в Compiler Explorer

image1.png

Совсем недавно произошло знаменательное событие: PVS-Studio появился в Compiler Explorer! Теперь вы можете быстро и легко проанализировать код на наличие ошибок прямо на сайте godbolt.org (Compiler Explorer). Это нововведение открывает большое количество новых возможностей – от утоления любопытства по поводу способностей анализатора до возможности быстро поделиться результатом проверки с другом. О том, как использовать эти возможности, и пойдёт речь в этой статье. Осторожно – большие гифки!

Если вам хочется сразу перейти к делу и проанализировать код здесь и сейчас, то вот вам полностью готовая к использованию ссылка. Рекомендую добавить её себе в закладки – еще пригодится 😉

Теперь давайте обо всём по порядку. Compiler Explorer – интерактивный онлайн-сервис для исследования компиляторов. Здесь вы можете прямо на сайте писать код и сразу видеть, какой ассемблерный вывод сгенерирует для него тот или иной компилятор:

image2.gif

Помимо этого, на сайте существует еще целый набор возможностей, и сегодня мы рассмотрим возможность проведения анализа с помощью PVS-Studio. Для того, чтобы провести анализ, необходимо сделать следующее:

  1. Зайти на сайт godbolt.org,
  2. Во вкладке с выводом компилятора нажать "Add tool…",
  3. В выпадающем списке выбрать "PVS-Studio".

Пример такой последовательности действий вы можете увидеть на анимации ниже:

image3.gif

Готово! Теперь в появившемся окне будут автоматически выводиться все предупреждения, которые выдаются анализатором на ваш код. Анализировать можно как собственноручно написанный код, так и исходные файлы, загруженные по отдельности. Естественно, файлы должны быть самодостаточными и не использовать include на файлы, не входящие в стандартную библиотеку. В противном случае файл не получится ни скомпилировать, ни проверить.

На данный момент анализ с помощью PVS-Studio доступен на сайте для всех версий GCC и Clang под платформы x86 и x64. Мы планируем расширить возможности сайта и на другие поддерживаемые нами компиляторы (например, MSVC или компиляторы для ARM), если на это будет спрос.

Сейчас на сайте включены только General-диагностики уровней error, warning и note. Мы специально не стали включать остальные режимы (Optimization, 64-bit, Custom и MISRA), чтобы в выводе остались только самые важные предупреждения. Также, в отличие от самого PVS-Studio, Compiler Explorer пока не поддерживает языки C# и Java – мы планируем запустить анализ кода на этих языках, как только они там появятся 🙂

Compiler Explorer имеет весьма умную систему окон, поэтому вы можете двигать их или, например, накладывать друг на друга. Если сейчас вас не интересует вывод компилятора, его можно "спрятать". Вот так:

image4.gif

Вы можете как сразу писать код в окне Compiler Explorer, так и загружать отдельные файлы. Для этого нужно нажать "Save/Load" и в открывшейся вкладке выбрать "File system". Также можно "скачать" написанный вами код на компьютер, нажав Ctrl + S.

image5.gif

На сайте нельзя анализировать проекты целиком – можно только загружать файлы по отдельности.

Если вам хочется увидеть вывод вашей программы, то можно открыть окно выполнения, нажав "Add new… –> Execution only" в окне для написания кода (не в окне с компилятором). На гифке ниже вы можете увидеть вывод лабораторной работы, взятой из нашей страницы про бесплатное использование PVS-Studio студентами и преподавателями.

image6.gif

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

image7.gif

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

Мы планируем использовать эту возможность для работы с клиентами в техподдержке: зачастую использование Compiler Explorer является очень удобным для составления минимально воспроизводимых примеров, которые можно быстро взять и отправить по почте.

Также в выпадающей вкладке "Share" есть пункт создания Embedded-ссылки, с помощью которой можно встроить окно с Compiler Explorer на какой-нибудь другой сайт.

В Compiler Explorer всегда находится актуальная версия PVS-Studio, поэтому после каждого нашего релиза на сайте можно будет найти всё больше и больше ошибок. Тем не менее, использование PVS-Studio на godbolt.org не дает полного представления о его возможностях, ведь PVS-Studio – это не только диагностики, но и развитая инфраструктура:

  • Анализ кода на языках C, C++, C# и Java для куда большего количества платформ и компиляторов;
  • Плагины для Visual Studio 2010-2019, JetBrains Rider, IntelliJ IDEA;
  • Возможность интеграции в TeamCity, PlatformIO, Azure DevOps, Travis CI, CircleCI, GitLab CI/CD, Jenkins, SonarQube и т.д.
  • Утилита мониторинга компиляции для проведения анализа независимо от IDE или сборочной системы;
  • И многое, многое другое.

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

Чтобы всегда быть в курсе, следите за нашими новостями. Также читайте наш блог: там мы публикуем не только новости и статьи о поиске багов в реальных проектах, но и различные интересные моменты, связанные с C, C++, C# и Java.

Наши соцсети:


Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: George Gribkov. PVS-Studio is now in Compiler Explorer!.

ссылка на оригинал статьи https://habr.com/ru/company/pvs-studio/blog/509808/