• Анализ изменений в игре

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

      Еще до сборки нового продакшен-билда мы должны понимать, на какие показатели повлияет нововведение. Ведь в новых версиях игры может быть множество изменений баланса. Без предварительного планирования неизбежно возникнет один из таких вопросов: «Что же повысило ARPU в Канаде — локальные мероприятия в честь национального праздника или общее повышение сложности группы каких-то уровней; а может, просто звезды так совпали?». Безусловно, и после выхода апдейта выполняется всесторонний анализ результатов, но понимать характер изменений нужно заранее.

      Читать дальше →
      • +13
      • 12.4k
      • 3
    • Y Combinator рекомендует прочитать в 2016

      • Translation
      «Чтение и личный опыт формируют мировоззрение. И даже если вы не помните самый момент получения опыта или содержания книги, то их влияние на ваше представление о мире непременно остается в Вас. Ваш разум похож на скомпилированную программу без исходного кода — он работает, но не ясно как.»

      — Пол Грэм, основатель Y Combinator, программист, инвестор, эссеист



      Читать дальше →
      • +16
      • 22.8k
      • 8
    • Препарируем t-SNE

      • Tutorial
      Работая над статьей «Глубокое обучение на R...», я несколько раз встречал упоминание t-SNE — загадочной техники нелинейного снижения размерности и визуализации многомерных переменных (например, здесь), был заинтригован и решил разобраться во всем в деталях. t-SNE это t-distributed stochastic neighbor embedding. Русский вариант с «внедрением соседей» в некоторой мере звучит нелепо, поэтому дальше буду использовать английский акроним.

      Читать дальше →
      • +11
      • 34.6k
      • 4
    • Что такое деревья поведения и как они используются



        / фото Harry Li CC

        Нас в компании «ИТ-ГРАД» очень интересуют вопросы искусственного интеллекта. Мы уже затрагивали тему автопилотируемых автомобилей, а неделю назад публиковали материал, в котором рассказывали о новых достижениях ученых и разработчиков в сфере ИИ, а также об опасениях скептиков.

        Сегодня мы вновь коснемся этого вопроса и поговорим о том, что такое деревья поведения, как они используются в робототехнике и есть ли у них будущее.
        Читать дальше →
        • +17
        • 17.3k
        • 4
      • Strata + Hadoop 2016 review



          В последний год в Badoo стали очень активно использовать связку Hadoop + Spark и построили свою систему сбора и обработки десятков миллионов метрик при помощи Spark Streaming.
          Для того чтобы расширить наши знания и познакомиться с последними новинками в этой сфере, в конце мая этого года разработчики отдела BI (Business Intelligence) отправились в Лондон, где проходила очередная конференция серии Hadoop + Strata, посвященная широкому спектру вопросов в области машинного обучения, обработки и анализа больших данных.
          Читать дальше →
          • +15
          • 5.1k
          • 2
        • MLBootCamp «Оценка производительности». Очень простой и быстрый вариант решения

          В этой заметке хочу поделиться своей идеей решения задачи MLBootCamp «Оценка производительности» от Mail.ru. Главное достоинство этого способа — в его простоте и скорости выполнения скрипта. И хотя он не сможет соревноваться в точности с победителями соревнования (мои поздравления!), но может оказаться полезным на практике, если несколько десятых процента не являются критичными, или отправной точкой для дальнейшего развития. Скрипт написан на R.

          Читать дальше →
        • Лекции ВШБИ: геймдизайн и оперирование игр

          • Tutorial
          Ажиотаж вокруг игровой индустрии среди россиян различных возрастных групп не утихает — все больше людей, особенно молодежи, начинают относиться к играм не только как к развлечению, но и рассматривают разные виды работы в игровой индустрии в качестве своего призвания. К сожалению, для многих из них вопрос о том, как попасть в так называемый геймдев, остается не просто открытым, а даже тайной за семью печатями. Чтобы приоткрыть завесу этой тайны, в рамках проекта «Университет, открытый городу: лекции молодых ученых Вышки в Культурном центре ЗИЛ» прошел целый цикл лекций под общим названием: «Создание онлайн-игр: геймдизайн, монетизация, оперирование и продвижение», вели который преподаватели нашей программы “Менеджмент игровых интернет-проектов”. Под катом вы найдете их видео и конспекты.


          Читать дальше →
          • +8
          • 16.9k
          • 6
        • Лучшие пакеты для машинного обучения в R, часть 1

          • Translation
          Один из наиболее частых вопросов, с которыми сталкиваются специалисты по обработке и анализу данных — «Какой язык программирования лучше всего использовать для решения задач, связанных с машинным обучением?» Ответ на этот вопрос всегда приводит к сложному выбору между R, Python и MATLAB. Вообще говоря, никто не может дать объективный ответ, какой же язык программирования лучше. Конечно, язык, который вы выбираете для машинного обучения, зависит от ограничений конкретной задачи и данных, предпочтений самого специалиста и тех методов машинного обучения, которые нужно будет применить. Согласно опросу о любимом инструменте пользователей Kaggle для решения задач анализа данных R предпочитают 543 из 1714.

          Сейчас в CRAN доступен 8341 пакет. Кроме CRAN, есть и другие репозитории с большим количеством пакетов. Синтаксис для установки любого из них прост: install.packages(“Name_Of_R_Package”).

          Вот несколько пакетов, без которых вы вряд ли обойдетесь, как специалист по анализу данных: dplyr, ggplot2, reshape2. Безусловно, это не полный список. В этой статье мы подробнее остановимся на пакетах, применяемых в машинном обучении.
          Читать дальше →
          • +8
          • 13.4k
          • 7
        • Что такое большие данные, часть 1

          • Translation


          Большие данные — это Большие Новости, Большая Важность и Большой Бизнес, но что это на самом деле? Что такое большие данные? Для тех, кто живёт ими, всё очевидно, а я просто тупица — задавать подобные вопросы. Но те, кто живёт ими, считают большинство людей глупыми, верно? Поэтому в начале я хочу поговорить с теми читателями, которые, как и я, не в теме. Что это вообще такое? На этой неделе я планирую хорошенько исследовать этот вопрос, и, скорее всего, опубликовать три длинных статьи (прим. переводчика: переводы следующих двух частей выйдут в ближайшие дни).
          Читать дальше →
        • Хранимые функции на С в PostgreSQL


            Здравствуйте, хабрачеловеки! Многие из Вас сталкивались с вынесением бизнес-логики в СУБД в виде хранимых функций/процедур, облегчая клиент. В этом есть как и преимущества, так и недостатки. Сегодня я бы хотел рассказать Вам как создавать хранимые функции в PostgreSQL, написанные на языке C. В статье будут самые основы, которые необходимо знать для начала работы с ними.
            Подробней
            • +49
            • 23.8k
            • 7
          • Моделирование нейросети Машина Больцмана

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

            В России по данной теме было крайне мало информации. Даже руководитель нашей кафедры не мог мне помочь с материалом. Благо наш университет состоял в единой международной базе, и была возможность воспользоваться зарубежным опытом. В частности, большая часть была найдена в литературе оксфордского университета. По сути, данная статья является сборником информации из различных источников, переосмысленная и изложенная достаточно понятным языком, как мне кажется. Надеюсь кому-то будет интересно. Когда-то меня это заставляло не спать ночами.
            Итак, приступим.
            Читать дальше →
          • Квантовая механика для всех, даром, и пусть никто не уйдёт обиженным: часть первая

            Здравствуйте! Я хотел бы представить вашему вниманию отличное введение в квантовую механику, написанное Элиезером Юдковским; быть может, он известен вам по своему сайту lesswrong.com, посвящённому рационализму, предрассудкам, когнитивным парадоксам и ещё многим интересным вещам.
            Читать дальше →
          • Настоящие программисты, где же вы?

              [Это перевод статьи из блога компании RethinkDB — калифорнийского стартапа, который занимается разработкой MySQL storage engine, оптимизированного под SSD-диски. Оригинал статьи можно прочитать здесь]

              В последние месяцы RethinkDB довольно активно нанимает новых сотрудников, и за это время мы твердо убедились в том, что Джеф Этвуд (Jeff Atwood) в своей статье о FizzBuzz ни на йоту не отошел от истины.

              Без лишнего хвастовства могу сказать, что мы предъявляем очень высокие требования к соискателям вакансий. И мы совершенно не намерены снижать эту планку. Более того, мы уверены, что чем больше слабых программистов мы отфильтруем, тем лучше и сильнее в итоге окажется наша команда. Некоторые, впрочем, отмечают, что под наши требования скоро будут подпадать только обладатели PhD в computer science со вторым дипломом по квантовой механике.

              Конечно, всё это гнусные инсинуации. Наше основное правило — не нанимать людей, которые не умеют программировать.

              Чтобы не быть голословными, мы опубликуем наш основной тест, отсеивающий 19 из 20 кандидатов еще на этапе телефонного собеседования (при том, что до телефонного собеседования мы допускаем не всех подряд, а только тех, чье резюме нам понравилось).

              Читать дальше →
            • Экспериментальное определение характеристик кэш-памяти: практикум

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

                Затем Yekver предложил мне идею простой программы для Windows, которая определяла бы характеристики кэша автоматически, не требуя ручного анализа графиков. (Тем более, что версии lmbench для Windows не существует.) Для замера времени будем использовать функцию __rdtsc, которая возвращает 64-битное количество тактов с момента последнего сброса процессора. Сначала определим тактовую частоту процессора, замерив на произвольной нагрузке время выполнения и количество потребовавшихся тактов. Затем для расчёта времени доступа к памяти будем делить количество потраченных тактов на тактовую частоту процессора.

                Подобно прошлому эксперименту, мы будем брать данные различного объёма от 4КБ до 512МБ, и проходить по массиву миллионы раз с последующим усреднением результата. Чтобы минимизировать влияние дополнительных операций в цикле нагрузки, следуя примеру авторов lat_mem_rd, используем для тела нагрузки операцию p=(void**)*p;, которая компилируется в одну машинную команду, и развернём её 256 раз, чтобы возврат к началу цикла выполнялся относительно редко.
                Читать дальше →
              • Выводим счетчик электроэнергии в интернет


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