• Сверхчеловеческую скорость AlphaStar внедрили как заплатку для ошибки имитационного обучения?
    0

    По поводу спам-кликов и высокого APM в целом: обычно же делают, что каждое действие агента(которое не дает reward) уменьшает reward, из-за чего агент учится делать всё наиболее рационально. Интересно использовалось ли это в AlphaStar?
    Мне кажется, тогда мы бы видели средний APM в районе 100, просто потому что в "ответственные" моменты он бы выдавал >2000 apm.

  • Сверхчеловеческую скорость AlphaStar внедрили как заплатку для ошибки имитационного обучения?
    +2
    Впервые AI хоть как-то обыграл человека в эту игру, и в целом хоть в какую-то игру

    такого рода.
    OpenAI в доте?
    AI сделанные без машинного обучения?
    Есть сообщество которое соревнуется в "ботостроении" на основе первого старкрафте и показывают хорошие результаты, но обыгрываются профессионалами банальными тактиками, наподобие той, которой победил MaNa (варп-призма + обс)


    Даже просто вот это наше overprobing

    Я все ещё не определился — это баг, связанный с тем что они сначала специально тренировали только на добыче минералов (см. Материалы на их сайте) без "настоящих матчей" или они просто приспособились играть друг против друга ("мета", "баланс" и "стратегии" зависят в большОй степени от игроков) — потому что отличный контроль при атаке приведет к убийству рабочих.
    Так же по поводу баланса — взгляните на юнитов которых строил бот — сталкер или сталкеры + дизрапторы — он тоже о многом говорит, так как эти юниты при нечеловеческом контроле гораздо лучше.
    Я это к тому что люди у него не многому научатся. Его тактики — это тактики для идеального контроля, который пока ни один игрок в мире не может осуществить(и возможно не сможет никогда)
    Также, по поводу "учиться у бота" — насколько ужасные размеры были в узких проходах — это отдельный разговор. Это такая ошибка, которую увидели игроки всех уровней.


    Это офигенно в том числе и чисто эстетически.

    Просто бот vs человек с огромной долей хайпа. Опять же посмотрите на любительских ботов для первого ск. Некоторые вещи они делают лучше, а как показала последняя игра с MaNa — он подвержен некоторым таким же хитростям

  • Сверхчеловеческую скорость AlphaStar внедрили как заплатку для ошибки имитационного обучения?
    0

    "в низких лигах" — это вплотную до мастер лиги?

  • Сверхчеловеческую скорость AlphaStar внедрили как заплатку для ошибки имитационного обучения?
    0

    С ограниченным пулом 5-ых игроков в доте уже обыграл OpenAi. Ещё летом.

  • Иди-ка ты на !@# со своей «токсичностью»
    0

    Злоупотребление подобными правилами является проблемой, да.
    Как в примере с CoC, когда сторонние люди, не относящиеся к проекту и не вложившие в него больших усилий могут убрать с проекта человека, посветившего огромное количество времени и усилий этому проекту.


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


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


    В целом, не следует из более формального общения делать драму (как же я теперь без "шуток про блондинок" и тому подобного). Я напоминаю, что речь идёт о рабочей среде.

  • Иди-ка ты на !@# со своей «токсичностью»
    0
    Ваш список запрещенных шуток: про ориентацию, про пол, про религию, про воинскую обязанность(?)

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


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

    Смысл не столько в шутках, сколько в ущемлении людей. Для вас возможно это будет "просто шутка", а некоторых это может сильно зацепить. Та же тема про воинскую обязанность — некоторые просто посмеются, а человек может действительно переживать по этому поводу, что ему придётся расстаться со своими родственниками, друзьями и коллегами на год. Если задуматься, это достаточно депрессивная тема, поэтому не стоит "давить на больное".
    Эти "запреты" скорее общие рекомендации, потому что шутки на эту тему зачастую бывают оскорбительными, либо болезненными, для многих людей. В остальном можно полагаться на собственные чувства.
    Из важных запретных тем, которые я, к сожалению, забыл указать есть ещё "шутки" про инвалидность.


    в итоге придем к тому, что шутить вообще нельзя.

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


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

    Я не думаю что отказ от шуток которые могут задеть чувства других сотрудников помешает вам писать хороший код. А вот задетые чувства сотрудников могут негативно сказаться как на их производительности, так на межличностные отношения с командой. Этого нужно избегать, пускай и ценой "шуток".

  • Иди-ка ты на !@# со своей «токсичностью»
    +5

    Крайне не согласен с мнением изложенным в статье. По пунктам:
    "Это должен быть матёрый сисадмин со стальными яйцами" — никто никому ничего не должен.
    "который плачет от шуток про ориентацию" — это плохие шутки и их не должно быть в "рабочей среде". Ровным счётом как и половых (например про "тупых блондинок"), религиозных, относительно воинской обязанности сотрудников.
    "что нельзя критиковать людей, нельзя вообще высказвать им негативную оценку" — да, нельзя. Человек приложил усилия и написал код. То что он не соотвествует какому-то требованию, о котором он мог и не знать — это уже другой разговор. Но в целом: "критиковать людей нельзя" — правильная точка зрения. Не забывайте что это для вас "программирование — это субкультура" или, скорее, "культ", а для большинства людей это просто работа, на которую они ходят просто потому что получают за это деньги. Оскорблять людей за их работу неправильно. Критиковать тоже нужно правильно.
    По поводу оценки кода — меня учили не критиковать код, а указывать на более подходящие варианты, или проблемные моменты. Да, допустим, программист сделал обход связанного списка вместо доставания по хешу из ассоциативного массива. Не нужно говорить что "это говнокод", "это <плохое> решение" нужно сразу сказать что это можно сделать лучше.


    Удивительно что многие поддерживают мнение указанное в статье. "IT-не детский сад, а место для суровых людей которые могут и 'куда-подальше послать' " — это плохое мнение, которое может отсеять потенциальных специалистов.
    Не говоря уже о том, что в нашей профессии часто приходится общаться с людьми, а аргументы в статье говорят о том что хороший айтишник — тот который не знает как это правильно делать

  • Western Digital закрывает ещё один завод по производству HDD из-за снижения спроса
    +1

    Я хз откуда цифра в 30 гб на современные игры, т.к. у меня игр 5 стоит на ~100 гб.


    SSD для работы — хорошая штука.
    Для системы SSD тоже заходит хорошо.


    Но он явно не идеален и порой RAID0 (или RAID#) из N HDD неплохо заходит.


    Для себя решил систему + работу ставить на SSD, медиа на HDD

  • Нет, вам не нужно машинное обучение. Вам нужен SQL
    +6

    Но автор с тем же фанатизмом "впихивает" SQL, где лучше сработал бы ML и говорит что SQL справляется лучше.


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

    Мне покажут обувь, когда я купил обувь; очки, когда я купил очки и случайные книги, когда я купил книгу.


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


    Мне кажется, рекомендательная система — это одна из сильных сторон ML.


    Смысл статьи как всегда: "не забивать гвозди отверткой и не закручивать молотком".

  • Рефакторинг программы на Go: ускорение в 23 раза
    +1

    в любом языке в concurrent решение не быстрее обычного, при условии что они выполняются на одном ядре.
    в любом языке регулярки — очень жирные, потому что они рассчитаны на гибкость.
    пример с trim — тоже показывает что обобщенное решение, не быстрее конкретного.


    Пожалуй, самый наглядный пример — это поиск элемента перебором, или бинарным поиском — зная, что все элементы упорядоченны, мы можем в разы ускорить поиск элемента

  • Спецучреждение ООН опубликовало план перехода на IPv6 — IT-сообщество им недовольно
    0

    Поправьте, если ошибаюсь, но, вроде бы, стандарт IPv6 поддерживается многими устройствами уже давно.
    Для большинства пользователей переход на IPv6 будет незаметен. (в один прекрасный день просто айпишник заменится на новый и всё)


    upd: речь про пользовательские роутеры. как там у телекомопов — мне не ведомо.

  • Bloomberg: как акция Илона Маска по продаже огнеметов изменит финансирование стартапов
    +5

    Скорее "Акция Илона Маска" больше напоминает коллекционные издания игр — получаешь тоже самое, но ещё фигурку и книжечку, знатно переплатив себестоимость товаров…
    Может быть, ICO появилось благодаря коллекционным изданиям игр? <сарказм>

  • Теневой бан и с чем его едят
    +2

    Это реддит — самое добрый и самый злой сайт. У него специфичная аудитория и подобный тип бана ей очень подходит.


    Да, возможно, это не этично, но давайте взглянем на плюсы:


    • тролли не получают "пищу" -> теряют интерес к данному ресурсу, что радует обычных пользователей
    • уменьшает количество спама, потому что в случае обычного бана, сделают очередной спам-аккаунт, а тут нужно проверять под другим логином.

    По теме:


    Я создал свой аккаунт на reddit.com порядка 2-х лет тому назад, постил периодически но потом длительно время им не пользовался. Некоторое время назад я написал несколько тем, после чего периодически отвечал на всяко-разные вопросы в субреддитах /r/gamedev /r/unity3d.

    Возможно, вы нарушили "Posting Guidelines" сабреддита:


    Promotion
    Once-per-game feedback requests or release threads are OK, but a considerable history of participation on /r/gamedev is required. Must be a Text Post
  • IT-инфраструктура штабов Навального и сбор подписей: подготовка к сбору, сайт «Навальный 20!8»
    +10
    Мне бы очень хотелось, чтобы люди не вздрагивали от упоминания имен политиков и, в частности, Алексея Навального.

    Мне кажется, или это немного противоречит правилам сайта?

  • Книга «Глубокое обучение. Погружение в мир нейронных сетей»
    0
    Математика не по душе

    Вы просто не умеете её готовить :)


    На одном из книжных фестивалей взял "мангу" "Занимательная статистика" "Регрессионный анализ" там очень хорошо и наглядно рассказан(и показан) математический материал необходимый для понимания темы.

  • Singleton в Unity3D
    +1

    Проблем нет, если новых фич/кода не предвидется.
    Проблемы начинаются, когда вы, например, придумаете повторяемые квесты с рандомным дропом, захотите сделать особенный лут для какого-нибудь ивента(например повысите вероятность получения вещей в 2 раза), а потом придумаете, что не только должна повышаться вероятность получения вещей, но и в некоторых случаях их количества(например 2 зелья здоровья, вместо одного, 20 монет вместо 10 и т.д.), или вероятность выпадения "уникального хэллоуинского/новогоднего наряда", а потом ещё и доп. лут к 23 февраля и 8 марта...


    Это одна из настоящих проблем Coupling'а(сильной связанности). Если вы будете писать без DI(Dependency Injection, внедрения зависимостей), то вам придётся писать огромные if'ы и ваш элегантный код превратится в макаронный, а с DI проблем с синглтонами нет, потому что вы сможете сделать под каждый случай свой синглтон. Например сделаем interface LootManager и следующие наследники:


    1. FixedLootManager — для дропа из квестовых монстров и сундуков из "кампании". Бросает ровно то что нам нужно.
    2. RandomLootManager — ScriptableObject, который генерирует случайный лут для уровня данного уровня монстра
    3. LevelDependentLootManager — SO, который генерирует лут в зависимости от уровня героя
    4. HighierRatesLootManager — SO для генерации лута с увеличенными рейтами(шансом выпадения).
    5. HalloweenSpecialLootManager — SO для генерации лута для хэллоуинских ивентов

    и т.д.
    Согласитесь, это выглядит получше.

  • Singleton в Unity3D
    0

    Я боюсь, что это любой проект, который со временем обрастает кодом:
    Сложности тестирования делают ваш код менее стабильным, а наличие God-Object'а и вовсе может привести к сложно обноруживающимся багам.
    Более подробный ответ об проблемах и "альтернативах" я описал ниже.

  • Singleton в Unity3D
    0

    Перечитал ещё раз свой комментарий и заметил, что из него плохо понятно чем плох первый пункт минусов синглтона(про единую ответственность).
    Т.к. предыдущий коммент получился большой, решил написать отдельно:
    Каждый класс должен выполнять ровно ту функцию, для которой он был создан. В случае с синглтоном тут две функции: управление своим жизненным циклом и "бизнесс-логика" вложенная в него.
    Несмотря на то что "управление своим жизненным циклом" кажется простой задачей, всё становится гораздо сложнее с многопоточными приложениями.
    Наш стильный маленький "бойлерплейт"(повторяющийся код, необходимый для правильного выполнения программы) обрастает синхронизациями, и прочими вещами, которые осложняют понимание бизнес-логики кода и повышают шансы на то, что кто-то ненароком его сломает.

  • Singleton в Unity3D
    +1

    Мой "основной" язык — Java, так что расскажу как дела обстоят там и почему правы и те люди, которые говорят что синглтон зло, и почему правы вы:


    Нарушение принципа единственной ответственности

    В Java (и скорее всего в C#) синглтон создает сам себя, хранит сам себя и делает свою бизнес логику. Это ужасно, это отвратительно, это плохо.
    НО! В Unity этим занят сам движок. Вы только делаете ScriptableObject и сам движок управляет жизненным циклом синглтона. Про "God Object" поговорим дальше, пока считаем что эта проблема решена.


    Singleton невозможно тестировать
    Тесная связь

    Эти проблемы связанны напрямую. Coupling(т.н. "связывание", оно же "сильная связанность") — это когда объект содержит другой объект. В итоге мы не может протестировать их по одиночке. Юнит тестирование класса аггрегирующего другой класс будет невозможно, т.к. мы будем завязаны на использование внутреннего объекта. Это тоже ужасно, отвратительно и плохо
    Но опять нам на выручку приходит игровой движок, который по совместительству выполняет роль Dependency Injection(внедрение зависимостей, DI).
    Многие начинающие программисты на юнити используют его даже не подозревая этого, потому что оно настолько простое. Перетаскивание объектов в скрипты, Изменение их значений через UI — всё это внедрение зависимостей и эта простота не уменьшает возможности.
    Хотите синглтон(ScriptableObject)? Пожалуйста! Но будет гораздо разумнее использовать наследование и встроенный DI.
    Примеры:


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

    2. Сделать разные характеристики для юнитов в стратегии, для последующего теста и менять их только изменяя SO при создании юнита.

    3. Сделать разные AI для разного поведения опонента в экономической стратегии: более агрессивный и более миролюбивый.


    Каждый из приведенных выше примеров позволит протестировать разный ScriptableObject отдельно, и заменить их на Mock'и при тестировании классов, которые их используют.
    При каждом изменении мы сможем заменить старый SO на новый, оставив старый, на случай "отката", если идея не взлетит.
    Проблема с God-Object тоже пропадает при использовании DI.

  • Пишем бота-кликера на Python для Lineage 2
    0

    Как я понял, при наведении мыши мобы иначе подсвечиваются (например красным)


    Теперь наводим курсор на найденного монстра и смотрим, появилась ли подсветка с помощью метода
  • Пишем бота-кликера на Python для Lineage 2
    0
    А некоторые приложения, как клиент этого сервера, могут определять источник клика на уровне ОС. (будет здорово, если кто-нибудь подскажет как именно).

    Мое предположение, что автокликеры используют WinApi для кликов/хоткеев, а игра использует DirectInput

  • Новый выпуск Oh, my code! Как я стал разработчиком ВКонтакте в 16 лет
    0

    Уже музыки всего 30 минут в день. В эти 30 минут вы будете ещё слышать не пропускаемую рекламу.


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


    В то же время Google Music и SoundCloud грузят моментально треки любой популярности.

  • Новый выпуск Oh, my code! Как я стал разработчиком ВКонтакте в 16 лет
    0

    Согласен. Это выглядит как минимум некрасиво. Какого чёрта, тут люди пишут тексты и расшифровки для видео, но приходит цитирую: "крупнейший холдинг в России", у которого нет людей/денег/желания, делать расшифровку видео.


    Не делайте из хабры твиттер. Твиттер есть и прекрасно работает. Если вам ближе такой формат, то используйте его.


    имхо: лишний раз показывает отношение компании к людям

  • Ростелеком: чужие счета — это не спам
    0

    Жизненно до слёз. Мне постоянно приходят письма что какой-то человек с другого конца света покупает игры и закидывает деньги на свой PlayStation аккаунт.
    Возможно, он ошибся и случайно указал мой адрес, а я усталый после работы нажал на кнопку "подтвердить email"…
    Ну и письма мне приходят с "Jul 13, 2014". Последняя покупка была 22 Августа этого года.
    В первый год я пытался найти человека по личной информации из писем, чтобы попросить его поменять мою почту на свою, но поиск в соцсетях (Facebook) не дал нормального результата.
    Зато нашёл сайт клиники для малообеспеченных, у которой совпадает индекс с тем что в профиле, "доску почёта" с именем и фамилией как из профиля. Хз совпадение это или нет, но я понял что по гуглу о человеке можно узнать слишком много...

  • AlphaGo Zero совсем на пальцах
    0

    Речь о нейронках и самообучении.
    Да, некоторые комбинации герой-предмет заведомо слабые, но суть RL(Reinforcement Learning) в том, что он может найти удачные моменты даже в случае если для этого придётся чем-то пожертвовать (аналог гамбита). Так что ему в любом случае нужно будет попробовать все вариации предметов, причём не один раз.
    По поводу шахмат при обучении ИИ как раз и поиграется со всеми фигурами. Но достаточно быстро(относительно) сделает выводы о выгоде от фигур.
    В то же время в Dota 2 где матчи длятся очень долго(особенно для AI с не обученным RL) 115 героев, по 6 слотов у каждого, где может быть один из ~130 предметов, с учётом команды...


    Идеально микро появится совсем не скоро… Того же OpenAI обыграли в 1х1 на равных условиях и это с учётом того что учили его одного, только для этого типа игры.
    Какие мощности понадобятся для того, чтобы сделать что-то что может конкурировать с командой "любительского уровня" страшно представить.
    Про ботов в HotS'е: в доте такое сложно будет провернуть из-за специфики игры. Некоторые способности направлены на длительные дизейблы по врагам стоящим рядом друг с другом, в то время как другие позволяют расправляться с теми, что разрознены. Я понятия не имею, как с этим будут бороться. Поживём — увидим.


    2020 год — это мой самый "позитивный" прогноз. Так делаю ставку на 2025-2035.

  • AlphaGo Zero совсем на пальцах
    +2

    ral если ты читал про SC2, то по аналогии с StarCraft 2, это тоже самое что управлять всего одним юнитом в стратегии, не задумываясь о ресурсах и создании новых.


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


    1. Выбор героев. Одни герои лучше сочетаются с другими, другие лучше противостоят определенным героям противника. Выбор из более чем 110 героев 5 героев на команду, команд две. За каждого отдельного персонажа стратегия игры отличается и может ещё изменятся в зависимости от героев противника/их "материального состояния" = В матче с OpenAI герой всегда один и тот же и матч "зеркальный"
    2. Покупка предметов — более 100 разных предметов. У каждого персонажа в игре есть инвентарь на 6 предметов. Как одноразовых "расходников" которые тратятся, так и пассивных(работают постоянно, пока лежат в инвентаре) и активных(которые нужно применять в определенные моменты). Некоторые предметы можно брать на 1-2 героев на команду, т.к. при правильном использовании они дают выгоду всей команде. = В матче OpenAI герои были 1х1 что уже урезает число возможных вариантов с 6 * 5 до 5. Некоторые предметы дорогие, а игра 1х1 часто заканчивается достаточно быстро, поэтому бОльшая часть из предметов недоступна. Вдобавок к этому, OpenAI "искуственно" запретили некоторые предметы. (о причине мне не ведомо)
    3. Принятие решений. В игре персонаж становится гораздо сильнее с дорогими предметами, поэтому часто персонажей делят на роли Core(Основа, которая в будущем должна выиграть игру), которая занимается фармом(процессом убивания вражеских/нейтральных юнитов, для получения денег) и саппортов(помощники, которые делают всё, чтобы их "Основа" чувствовала себя чудесно и мешают "Основе" противника. И тут как раз игра в полной мере раскрывает стратегический потенциал.
      Core-игрок должен понимать, когда ему лучше выходить на бой с противником, а когда лучше заниматься добычей денег, должен "чувствовать" игру, чтобы понимать, когда на него могут делать вылазку противники.
      Support-игрок должен правильно распределять ресурсы — у него не так много денег, поэтому он должен стараться использовать их максимально эффективно, помогать союзникам и нападать на героев оппонента.

      По последнему пункту в OpenAI было ничего общего с командной Dota.
      Да, он понимал что ему нужно наносить герой оппоненту и убивать его по возможности, а в свободное время "фармить", но это всего одна линия, с которой, по сути, выходить было нельзя. Распределения ролей тоже не было. Командного взаимодействия тоже не было.



    Я уверен, что до 2020 года не будет ничего, что сможет сравниться с людьми по навыку игры Dota 2 и похожие игры, потому что, имхо, это решение требует совершенно нового подхода, которое должно быть на порядок лучше(как минимум, для этой задачи)

  • AlphaGo Zero совсем на пальцах
    +1

    Как и сказал JustRoo в доте было много ограничений. Добавлю, что на некоторые моменты модель натренировали специально (например блокинг крипов был "захардкожен", а не бот сам до него "додумался").


    Про SC2 лучше процитировать ребят из DeepMind


    Our initial investigations show that our agents perform well on these mini-games. But when it comes to the full game, even strong baseline agents, such as A3C, cannot win a single game against even the easiest built-in AI. For instance, the following video shows an early-stage training agent (left) which fails to keep its workers mining, a task that humans find trivial. After training (right), the agents perform more meaningful actions, but if they are to be competitive, we will need further breakthroughs in deep RL and related areas.
  • AlphaGo Zero совсем на пальцах
    +2

    "Принципы" которым учат — это знания людей выраженные в более простой форме.
    На хабре была хорошая статья, где автор ML научил играть в шахматы а потом регрессионным анализом достал "стоимость" каждый из фигур, которые были приблизительно равны тем, что "написаны в учебнике".
    (хотя для некоторых профессиональных игроков они отличались. я склоняюсь к тому, что это зависит от стиля игры. Например играя против одного игрока ты "боишься" его слонов, против другого лучше "бояться" коня.)


    Вот, кстати, эта статья: https://habrahabr.ru/post/254753/

  • Как перетасовать песни?
    +1

    Напомнило Сида Меера и про его фразу смысл которой: "Случайность не подходит для игр, потому что игрок считает, что его обманывают. Поэтому мы ей 'помогаем'".


    когда игрок, которому предсказывали 33-процентный шанс выиграть в битве, трижды подряд проигрывал в ней, то он ощущал гнев и недоверие
    Сама статья: https://habrahabr.ru/post/320296/
  • Использование SVG в качестве Placeholder’a
    +1

    Хороший вопрос.
    Первая моя мысль мысль: выгода была бы такой, что ей можно было бы пренебречь, потому что цикл из 10 000 элементов проходится относительно легко.
    Вторая что JS страдает при каждом добавлении нового элемента в DOM, поэтому выгода могла быть большой.
    Третья: готовым файлом — это как?

  • Использование SVG в качестве Placeholder’a
    +2

    Меня беспокоил такой же вопрос.
    Решил проверить, сделал примитивный тест на codepen, который просто создает svg с n количеством треугольников.
    Браузер на компьютере подвисает на 3-4 секунды от 100 000 треугольников, после чего функционирует нормально.
    У телефона такие же проблемы начинаются с 10 000 треугольников (Xiaomi Redmi 3S)

  • Использование SVG в качестве Placeholder’a
    +2

    Действительно, я какую-то глупость написал. Думал что под бесполезной работой подразумевается "генерация svg на фронте", но только сейчас понял что для этого нам нужно само изображение "=.=


    По поводу отображения svg vs jpeg — это стандартная дилемма: память vs вычисления.
    С одной стороны у большинства пользователей уже есть быстрый домашний и (иногда) мобильный интернет, в кафе и торговых центрах есть Wi-Fi и загрузить лишнюю маленькую jpeg не составит труда, но с другой стороны браузеру итак есть что грузить, а тут ещё "лишние" jpeg файлы, пускай и небольшого размера.
    С другой стороны вычислительные мощности бОльшей части устройств смогут справиться с выводом 10 фигур, что будет очень кстати для пользователей мобильных устройств.


    Да это решение — не панацея, но оно имеет свои плюсы (например стилизация соцсети/сервиса). Думаю особенно красиво это смотрелось бы с специальной задержкой перед показом картинки и последовательным превращением фигур в фотографию.


    В остальных случаях, как и сказал TimsTims можно использовать прогрессивный JPEG

  • Использование SVG в качестве Placeholder’a
    0

    можно же и на бэке сделать. Поставить чтобы аватарку нельзя было менять чаще чем раз в 5(10,20, 100500) раз в минуту или делать плейсхолдеры, только когда она "продержалась" 1(2,3,7, 14) дней.
    Отправлять svg гораздо дешевле

  • Как я нашел уязвимости в системе баг-трекинга Google и получил $15,600
    +4

    При нажатии на кнопку отправить, при первом комментарии в теме писать "Вы уверены что хотите оставить этот комментарий? Данная статья является переводом".


    Шутки в сторону. В шапке действительно сложно заметить эту плашку. Я мельком глянул шапку на наличие плашки "перевод" (старой — цветной, по привычке). Потом в середине текста снова усомнился и ещё раз попробовал её найти. В конце статьи, когда написали про перевод я уже пристально пытался рассмотреть в шапке плашку и вспомнил что она теперь серая.

  • unCAPTCHA: использование сервисов Google для обхода Google reCAPTCHA
    0

    Скорее всего зависит от трафика с твоего IP. С динамическим айпишником может на большинстве сайтов капчу требовать и по несколько раз(не просто за какой-то запрос а просто за доступ к сайту).

  • Необразованная молодёжь. Ответ бизнеса
    +2

    В каждой компании по своему. На прошлой работе была игровая с теннисом и настольныv футболом. Все играли никто не жаловался.
    На новой тоже самое + х-бокс, лаундж зоны и "книжные углы".
    Опять же никто не жалуется.


    По поводу "лишали привозной воды" советую почитать Трудовой кодекс РФ. Это просто незаконно (пункт о том что работодатель обязан обеспечить питьевой водой).
    Ну и, пожалуй, бежать от такого работодателя куда глаза глядят.

  • Необразованная молодёжь. Ответ бизнеса
    0
    разработка без тестов — это еще хуже

    С этим никто не спорит. Я говорю что заставлять новичков писать юнит тесты это плохо. Цитата из статьи:


    Вы придёте и начнёте с малого — возможно, даже просто минимального тестирования.

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


    Мне кажется тут лучше всего подойдёт аналогия с кузнецами "Мастер — подмастерье":
    Правильный подход(имхо): Подмастерье смотрит на работу мастера, делает что-то сам. Получается криво. Мастер говорит почему.
    Подход из статьи: Мастер говорит подмастерье: "убирай за мной кузницу и полируй продукт". Подмастерье убирает и полирует.
    С одной стороны, да он увидит как выглядит правильный продукт, полируя его и какой инструмент для чего используется. Но почему так, ему придётся догадываться самому.

  • Необразованная молодёжь. Ответ бизнеса
    +2

    по первой части не согласен со всем:


    • Деньги — я ищу работу. Первое на что я смотрю деньги. Про повышения мы не узнаем пока оно не наступит. Знаю несколько "солидных" компаний, которые живут только на "дешевых студентах", которые боятся уйти. По моим наблюдениям з/п для одного и того же человека в разных компаниях может разниться в 2 раза.
    • Офис — я ищу работу. Я понимаю что я буду туда ходить и находится там солидное количество времени. Если будет выбор между двумя компаниями, но у одной из них столик для тенниса — я пойду в неё. Как минимум, потому что игровые на работе создают (хотя бы) иллюзию непринужденности.
    • Работа — писать юнит тесты не любит никто. Процитирую одного человека: "У вас спросят на собеседовании: "любите ли вы писать юнит-тесты", и вы скажете "Конечно люблю" и тут мы улыбнёмся и поймём друг-друга, о том что вы врете. Юнит тесты не любит писать никто."
      Не знаю кем бы я был, если бы на первой работе мне бы дали код и сказали "тестируй". Лучший старт:
      1. Тебе дают код
      2. Ты делаешь
      3. Комитишь
      4. Ревью тайм
      5. Пишут двадцать-тридцать пунктов, что нужно исправить
      6. Митинг, на котором тебе говорят, почему это важно
    • Отношения
      Тим билдинг это здорово. Нужно позволить разработчикам общаться друг с другом как им удобно. Активные разработчики, которые пытаются влиться в коллектив лучше, тех которые просто приходят молча на работу и молча смотрят в монитор. (имхо)
      Как минимум потому что они будут знать кто чем занимается, и у кого можно будет спросить помощи с такой-то проблемой.
  • Необразованная молодёжь. Ответ преподавателя-совместителя
    0

    Это уже "Костыль". По сути тут мы совершаем такую же ошибку, про которую писал автор, но в другую сторону:


    Но неделю назад услышал "многониточное программирование" вместо "многопоточного" и немножечко приуныл...

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


    P.s. но это "глобально". Внутри команды — как вам удобнее.

  • Необразованная молодёжь. Ответ преподавателя-совместителя
    +4

    Всё верно.
    Единственное, чему могу возразить это про "потерю культуры". Будем откровенны: у программистов основной "профессиональный" язык — английский. БОльшая часть документаций, спецификаций, книг, митапов, инструментов(IDE, git, svn, bash) и само программирование(ключевые слова: if, for. названия методов) на английском.
    Поэтому такое явление естественное. Согласитесь, вы же не будете говорить: "давай будем использовать целочисленную переменную (int, integer)", тем более когда есть ещё long и short(давай будем использовать "длинную/короткую целочисленную переменную").
    Push/pull, commit, cherry-pick: толкай, тяни, фиксируй, выбирай-вишню и тому подобное.
    Ну и на десерт: На работе у меня вся команда — англоговорящая. Это было не сразу, а сначала я работал с только русскоговорящими коллегами. Эта "потеря культуры" позволила гораздо увереннее переключиться на английский.


    p.s. ну и ссылка на комментарий к предыдущему посту про "Рыцарей науки" (ссылка)