Архив за 19 сентября 2019 - 5

Содержание

Иногда баги сами нас находят. Вот мы впихали большую строку данных — и система подвисла. Это она из-за 1 млн символов упала? Или ей какой-то конкретный не понравился?

Или файл загрузили в систему и он упал. Отчего? Из-за названия, расширения, данных внутри или размеров? Можно спихнуть локализацию на разработчика, пусть сам думает, что плохого в файле. Но часто можно найти причину и самому, а потом более точно описать проблему.

Если найти минимальные данные для воспроизведения, то:

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

Как найти минимальные данные для воспроизведения бага? Если есть какие-то подсказки в логах, применяем их. Если подсказок нет, то самый оптимальный метод — метод бисекционного деления.

Описание метода

Метод применяется для поиска точного места падения:

  1. Взять падающую пачку данных.
  2. Разбить пополам.
  3. Проверить половину 1
    • Если упало — значит, проблема там. Работаем дальше с ней.
    • Если не упало → проверяем половину 2.
  4. Повторяем шаги 1-3 до тех пор, пока не останется одно падающее значение.

Метод бисекционного деления в тестировании - 1

Метод позволяет довольно быстро локализовать проблему, особенно если это делается программно. Разработчики встраивают такие механизмы в обработку данных. А если не встраивают, то сами и страдают потом, когда к ним приходит тестировщик и говорит «Вот на этом файле падает, а точную причину я не смог найти».
Читать полностью »

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

С новым поколением можно ожидать ровно того же. Тем более, что через четыре-пять лет телевизоры 8K станут более распространёнными, и у производителей будет повод обновить приставки, заодно получив дополнительную прибыль.

Lenovo K10 Plus: смартфон с чипом Snapdragon 632, тройной камерой и экраном HD+

22 сентября дебютирует смартфон Lenovo K10 Plus, оснащённый экраном Full Screen HD+ размером 6,22 дюйма по диагонали и процессором Qualcomm.

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

Читать полностью »

Искусственный интеллект в файтинге Shadow Fight 3 - 1

Геймдизайнеры регулярно сталкиваются с задачей создать интересный ИИ. Этот процесс может быть как относительно простым, так и крайне сложным, в зависимости от нужд проекта и целей, которые вы преследуете. Старший геймдизайнер Banzai Games Михаил Драговаловский рассказал про опыт работы над ИИ для популярного мобильного файтинга Shadow Fight 3.
Читать полностью »

Концепты: упрощаем реализацию классов STD Utility - 1

Появляющиеся в C++20 концепты — давно и широко обсуждаемая тема. Несмотря на избыток материала, накопившегося за годы (в т.ч. выступления экспертов мирового уровня), среди прикладных программистов (не засыпающих ежедневно в обнимку со стандартом) все еще остается неразбериха, что же такое С++20-концепты и так ли они нам нужны, если есть проверенный годами enable_if. Частично виной тому то, как концепты эволюционировали за ~15 лет (Concepts Full + Concept Map -> Concepts Lite), а частично то, что концепты получились непохожими на аналогичные средства в других языках (Java/С# generic bounds, Rust traits, ...).

Под катом — видео и расшифровка доклада Андрея Давыдова из команды ReSharper C++ с конференции C++ Russia 2019. Андрей сделал краткий обзор concept-related нововведений C++20, после чего рассмотрел реализацию некоторых классов и функций STL, сравнивая C++17 и С++20-решения. Далее повествование — от его лица.

Читать полностью »

Смартфон Samsung Galaxy A80 является самым необычным в ассортименте корейского гиганта, если не считать гибкого Galaxy Fold.

Несмотря на то, что модель продаётся уже несколько месяцев, лишь сейчас до неё добрался блогер JerryRigEverything. Он подверг аппарат стандартному набору испытаний.

Компания Huawei представила сегодня на большом мероприятии в Мюнхене собственный телевизор — Huawei Vision. 

При настройке аналитики через Google Analytics (GA) нередко без внимания остаются Пользовательские параметры или CD (Custom Dimensions). Это происходит из-за сложности с пониманием их области применения: неясно, как именно CD могут помочь в сборе и анализе данных и каким образом настраиваются. В этой статье рассказываем об основных CD, которые мы используем на многих проектах, и процессе настройки.

Что такое пользовательские параметры

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

Всего существует 4 области действия CD:

  • Хит(Hit)
  • Сеанс
  • Пользователь
  • Товар

Например, у нас есть CD, в котором хранится параметр авторизации пользователя (0 — не авторизован, 1 — авторизован). В начале сессии все пользователи не авторизованы. Посмотрим, что происходит при изменении данного параметра после входа, в зависимости от области действия CD.

Пользовательские параметры в Google Analytics, которые не раз нас спасали - 1

  • для CD с областью действия Хит, единица присвоилась параметру авторизации в том хите, в котором произошла авторизация;
  • для CD с областью действия Сеанс, параметр авторизации станет равным 1 для всех хитов сеанса, в котором произошло событие (затирая старые значения CD в этом сеансе);
  • для CD с областью действия Пользователь, параметр авторизации станет равным 1 для всех сеансов пользователя, начиная с того, в котором был совершен вход.

Читать полностью »

Официальный анонс Redmi 8A состоится на пресс-конференции, которая пройдет 25 сентября. Это устройство должно стать самым дешевым представителем линейки.

В Сети появилась фотография заводской упаковки Redmi 8A, на задней панели которой перечисляются характеристики этого устройства.

Redmi 8A получил экран диагональю 6,22 дюйма разрешением 1520 x 720 пикселей, а также восьмиядерную однокристальную систему Snapdragon 439. Объем оперативной и флэш-памяти данной версии составляет 3 и 32 Гб соответственно, но пользователям также предложат версии с 2/16 и 4/64 ГБ памяти.

Компания Huawei представила сегодня не только смартфоны Huawei Mate 30 и Mate 30 Pro, но и более премиальную версию — Huawei Mate 30 RS Porsche Design. 

Вдвое дороже Huawei Mate 30 Pro. Представлен премиальный Huawei Mate 30 RS Porsche Design

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js