• Глобальные тренды геймдева:
    о чем расскажут на
    «4C: Санкт-Петербург»
    +1
    Онлайн-трансляция будет в одном зале. Запись будет и в других, но как написано выше, не все спикеры хотят, чтобы их выступления были в сети.
  • Глобальные тренды геймдева:
    о чем расскажут на
    «4C: Санкт-Петербург»
    0
    Следи тут: www.facebook.com/4CSPb
  • Глобальные тренды геймдева:
    о чем расскажут на
    «4C: Санкт-Петербург»
    +2
    Не все спикеры хотят записываться или попадать в онлайн-трансляцию. Это бывает и на DevGamm, и на других конференциях =) К тому же, есть контент который просто бессмысленно записывать. Например, мастер-классы.
  • Глобальные тренды геймдева:
    о чем расскажут на
    «4C: Санкт-Петербург»
    0
    Трансляция будет, но только одного зала. Так что если есть возможность, то лучше приходите =)
  • Глобальные тренды геймдева:
    о чем расскажут на
    «4C: Санкт-Петербург»
    0
    Запись будет, но не всех докладов. Так что если есть возможность, то лучше приходите =)
  • Как мы ловим Deadlock`и на PostgreSQL и чиним их
    0
    Привет! Наши разработчики постоянно работают с продакшеном, и базами в том числе. Деплой и разработка все вместе контролируют и обмениваются статистикой. Также нет проблем и с админами. Наверное, бывают разные случаи, но в целом все работает именно так.
  • 4C: Kyiv — конференция разработчиков видеоигр
    0
    Ждем!
  • 4C: Kyiv — конференция разработчиков видеоигр
    0
    Всего три часа на самолете. А многие спикеры прилетят выступать из Америки. Так что приезжайте, не пожалеете)
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    +1
    В документации на ALTER TYPE ничего не написано про блокировки. И здравый смысл подсказывает, что нет никакой необходимости блокировать какие-либо таблицы при добавлении нового значения в ENUM. Вот при удалении значения, да, блокировки могут понадобится.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Да, можно было бы сохранить куда-то. Но нашем случае это не нужно.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Тут дело в том, рассматриваем ли мы добавление нового типа как штатную операцию, или как некое нештатное действие, требующее митингов, согласований, привлечения девопсов и т. д.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Да, за счет типа меньшего размера в одном столбце трудно получить выигрыш. Нужно несколько таких столбцов.

    Что касается производительности, то я предположу, что для значений в рамках одного машинного слова она будет одинаковая.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    +3
    Смысл перехода от varchar к enum был в том, чтобы ограничить возможные значения type. Заодно, как бонус, получить уменьшение индекса.

    Это можно было бы сделать и так, как вы говорите — вынести список возможных типов в отдельную таблицу. Но такой вариант, очевидно, сложнее. Он требует дополнительных действий и на вставке нового кота (сперва нужно получить id типа по имени типа), и на чтении котов (нужно делать join).

    ENUM покрывает наши потребности полностью, и делает это более простым способом. Принцип KISS.

    Ну и, опять же, декларация намерений. Создавая таблицу с типами мы декларируем, что типы будут меняться — можно добавлять новые и т. д. Создавая ENUM, мы декларируем, что список типов статичен, и меняться не будет.

    insert в таблицу — штатная операция. alter type — нештатная операция. То есть мы подчеркиваем, что таких операций не хотим.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Мы так делаем. Но будем рады, если вы расскажете, почему это плохо)
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Если мне понадобится добавить еще один тип, то я сделаю миграцию ALTER TYPE cat_type ADD VALUE ‘some new value’;

    Атрибуты для типа за 3 года эксплуатации не понадобились. А иначе мы бы сделали по-другому.

    В целом лучше использовать простые вещи, когда они подходят. А сложные брать когда не подходят простые.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Подразумевается, что список типов котов статичный. Добавлять в него новые типы не нужно.

    Контроль целостности обеспечивается самим типом ENUM.

    Ну а экономия за счет 2-х байтов smallint вместо 4-х байтов enum, как показал эксперимент, все равно ничего не дает.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    +1
    Подразумевается, что список типов котов статичный. В него не будут добавляться новые типы. Так что это ближе к перечисляемому типу, чем к словарю.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    +4
    Между ними нет разницы ни по производительности, ни по занимаемой памяти.

    Разница только в декларации намерений. Используя TEXT, мы декларируем намерение хранить «длинные тексты». А используя varchar, мы декларируем намерение хранить «короткие строки». Причем разница между «длинным» и «коротким» субъективна.

    Это просто дело вкуса.
  • PostgreSQL. Как правильно хранить котов или история одной миграции
    0
    Да, партицирование у нас есть, и там много интересного. Как-нибудь расскажем про это)
  • Стихийный геймдизайн
    0
    Спасибо, что поделился. Учтем ;)
    В ближайшее время у нас выйдет статья о курсе, из которой ты узнаешь, почему мы делали так, а не иначе по многим пунктам. Не знаю точной даты, но если интересно — следи за обновлениями тут: https://www.facebook.com/WargamingMinsk/ Если после прочтения еще останутся вопросы — пиши, с удовольствием ответим.

    Пока могу сразу сказать, что создавая курс, мы серьезно подошли к вопросу, изучили множество референсов и вариантов. И всегда выбирали оптимальные для реализации нашей цели — познакомить с основами геймдизайна максимально широкую аудиторию.
    Хотя, конечно, никто не идеален. Многие вопросы, которые возникали по ходу курса, мы старались оперативно решать. Например, опубликовали список дополнительной литературы (если не видел, то он тут:
    http://195601023.r.worldcdn.net/modules/1078/pdf/Literatura8i8poleznyie8ssyilki.pdf)

    И еще раз спасибо, что поделился)
  • Стихийный геймдизайн
    0
    Привет! Расскажи, что именно тебе понравилось или не понравилось в курсе? Мы хотели бы и далее организовывать подобные курсы, поэтому мнение учеников очень важно для нас.
    Правильно понимаю, что тебя не устроило количество пользователей, которые проверяли твое дз начиная со второго модуля?
  • Мартовский Python Meetup: Python VS Erlang и возможности PostgreSQL
    +1
    Если хочешь почитать текст о Erlang, то обязательно глянь вот эту статью: https://habrahabr.ru/company/wargaming/blog/279621/
    Но вообще мы бы рекомендовали посмотреть видео выступлений — они действительно интересные. А если будут вопросы — свяжемся со спикерами, зададим)
  • Erlang в Wargaming
    0
    Если кратко, то мониторить и профилировать. Если подробно, то потянет на отдельную статью.
  • Erlang в Wargaming
    +1
    Кто они? :)

    Мы (Wargaming) видим смысл в том, чтобы использовать эрланг для веба. При желании этот смысл можно посчитать в человекочасах разработки или деньгах. Один и тот же веб-сервис можно построить на Python, а можно на Erlang. И после определенного уровня нагрузки, которую должен держать сервис, второй вариант выходит дешевле в человекочасах и деньгах.
  • Erlang в Wargaming
    0
    Да, конечно. Это узкоспециализированный фреймворк. Он нам не подходит.
  • Erlang в Wargaming
    0
    У нас часто бывают вакансии для Erlang-разработчиков) Можете мониторить http://wargaming.com/ru/careers/vacancies/ или отправить ссылку на резюме/резюме в личку. Добавим в базу, если будут подходящие места — свяжемся.
  • Erlang в Wargaming
    0
    В языках Python/Ruby/PHP обработчик http-запроса имеет свою область памяти, которая актуальна только на время обработки запроса. Если нужно хранить какие-то данные между запросами, то приходится обращаться к внешним сервисам, таким как Radis.

    В Erlang обработчику доступна вся память узла (не напрямую, конечно), и хранилище данных можно организовать прямо внутри сервиса. Например, с помощью ets-таблиц.
  • Erlang в Wargaming
    0
    Нет, не совсем так. Это достаточно долгая история, в двух словах не объяснишь.
    Посмотрите здесь https://ru.hexlet.io/courses/erlang_101/lessons/practical_erlang_gen_server/theory_unit
  • Erlang в Wargaming
    0
    N2O узкоспециализированная вещь. Для наших задач не подходит.
  • Erlang в Wargaming
    0
    С Haskell многие из нас знакомы, но как язык для разработки веб-сервисов мы его не рассматриваем. Основная причина — нет накопленного индустрией опыта разработки и поддержки крупных веб-проектов. Ну например, в 19:05 внезапно на 200% выросло время ответа сервиса на http-запросы клиентов. Что делать, как с этим разбираться? С Erlang и Python мы знаем что делать, а с Haskell нет.
  • Erlang в Wargaming
    0
    Опытом делиться будем. Не обещаю, что прям завтра и начнем, но будем.
    "Проблема именования переменных" — тут надо бы на конкретных примерах. И тогда будет ясно, кто виноват, язык или разработчик )
  • Erlang в Wargaming
    0
    Вопрос больше касается чистых функциональных языков, например Haskell. А про Haskell рассказать кратко я не могу)
    Что касается Erlang, то в нем можно (и нужно) делать грязные функции, и с вводом-выводом никаких сложностей нет. Для хранения состояния — gen_server. Ну а в целом применение Erlang на практике хорошо изложено в книге Фреда Хеберта Learn you some Erlang. Ну и в моем учебном курсе тоже :)
  • Erlang в Wargaming
    0
    В теории да, поэтому мы его и пробуем. А как оно получится на практике — увидим)
  • Erlang в Wargaming
    0
    Это в значительной мере дело вкуса. Но кое-где есть объективные проблемы. Например, некоторым новичкам требуются значительные усилия, чтобы разобраться, где ставить точку, где точку с запятой, а где просто запятую. Достаточно понаблюдать немного за тем, как пишут код новички, чтобы понять, что проблема есть)
    Увы, мы не знаем никого, кто использует Chicago Boss. В этом отношении даже Elixir/Phoenix лучше. Ибо есть разработчики = есть у кого попросить о помощи в случае проблем.

  • Erlang в Wargaming
    0
    Да, Дмитрий, автор статьи и большинство наших эрланг-разработчиков читают тебя :)
  • Erlang в Wargaming
    +5
    Та или иная парадигма сама по себе не защищает от плохого кода. И тут дело не в парадигме, а в том, что это редко используемая технология. Значит, ей интересуются любопытные разработчики, а нелюбопытные игнорируют.
    Вообще любопытство разработчика хорошо коррелирует с его способностью писать хороший код :)
  • WG Labs объявляет конкурс разработчиков
    0
    Да, в рамках этого конкурса браузерные игры не рассматриваются.
  • WG Labs объявляет конкурс разработчиков
    0
    Основная миссия WG Labs – это поиск новых интересных проектов со сторонними разработчиками для дальнейшего сотрудничества. С помощью конкурса, во-первых, мы хотим привлечь внимание к нашему направлению, а во-вторых — воодушевить молодые и амбициозные команды двигаться вперед и не бояться посмотреть на игровую индустрию с другой стороны.
  • Data Driven Realtime Rule Engine в Wargaming: анализ данных. Часть 2
    0
    Отладка правил происходит после их введения в препродакшене, уже на реальных данных. Валидность оценивается по откликам, срабатыванию и т. п. Поэтому в нашем случае главное четко понимать какова цель введения того или иного правила.
  • Data Driven Realtime Rule Engine в Wargaming: анализ данных. Часть 2
    0
    Мы оцениваем влияние нашего взаимодействия исходя из разницы поведения однородных групп игроков. Для каждого офера мы выбираем целевые и контрольные группы пользователей. С одними взаимодействуем, с другими – нет. Отличия в их поведении и есть влияние наших коммуникаций.

    Также нужно понимать, что для каждой отдельной коммуникации алгоритм оценки отличается.