Pull to refresh
0
@maxpsyhosread⁠-⁠only

User

Send message

JavaScript: вопросы и ответы

Reading time20 min
Views24K
Недавно в компании SmartSpate решили собрать вопросы, касающиеся JavaScript, и на них ответить. В материале, перевод которого мы публикуем, приведены чуть больше двух десятков вопросов о JavaScript и ответов на них. Спектр затрагиваемых здесь тем достаточно широк. В частности — это особенности языка, проблемы, возникающие у программистов при написании JS-кода, работа в браузере и в среде Node.js.


Читать дальше →

8 худших вопросов на собеседовании по Vue.js

Reading time11 min
Views69K
Привет, Хабр!

Вы любите собеседования? И часто проводите их? Если ответ на второй вопрос «Да», то среди кандидатов вам наверняка встречались отличные и умные люди, которые отвечали на все ваши вопросы и приближались к концу зарплатной вилки.

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

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

image
Read more →

Мысли о современном C++ и игровой разработке

Reading time18 min
Views31K
Новый год для игровых разработчиков начался с волны критики, обрушившейся в адрес комитета по стандартизации C++ после публикации Араса Пранкевичуса «Жалобы по поводу современного C++». Возник серьезный вопрос: действительно ли комитет стандартов потерял связь с реальностью, или все наоборот, и это игровые разработчики откололись от остального С++ сообщества?

Вашему вниманию предлагается перевод популярного поста Бена Дина, — ветерана игровой индустрии, проработавшего продолжительный срок в компаниях Blizzard, Electronic Arts и Bullfrog в качестве разработчика на C++ и тимлида, — в котором он отвечает на критику с позиции собственного опыта.

TL;DR: Комитет по стандартизации C++ не имеет скрытой цели игнорировать нужды игровых разработчиков, а «современный» C++ не собирается становиться «неотлаживаемым» языком.
На протяжении всей прошлой недели в Twitter шла активная дискуссия, в ходе которой многие программисты – особенно те из них, кто работает в сфере игровой разработки – высказались о том, что нынешний вектор развития «современного C++» не отвечает их потребностям. В частности, с позиции обычного игрового разработчика, все выглядит так, будто производительность отладки в языке игнорируется, а оптимизация кода становится ожидаемой и необходимой.

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

Для начала — небольшой экскурс в историю.
Читать дальше →

Семь бесплатных автоматизированных платформ-задачников для прокачки навыков программирования

Reading time2 min
Views69K

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


CheckiO


Проект из Украины «Чекио» сфокусирован на Python и JavaScript. Это сборник игровых задач по программированию для тех, кто уже не новичок. Большой упор на геймификацию, симпатичную графику и общение в сообществе. В самом решении задач игрового процесса нет, но есть общий сценарий для прохождения платформы. Полезная фича — смотреть другие решения и подсказывать студентам как их можно улучшить.


CheckiO


leetcode


Сборник задач по программированию на разных языках. Цель сервиса — готовить программистов к заданиям, которые встречаются на интервью. Платформа сразу даёт фидбэк на правильность и эффективность решения, показывает варианты решений и позволяет обсудить их с другими участниками. В платной версии можно пройти автоматизированное интервью в Google, Facebook или Amazon: робот подберёт вопросы, засечёт время и даже поможет оценить.


leetcode

Читать дальше →

Упрощаем сборку билдов в Unity3D

Reading time6 min
Views13K

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


Выглядит он примерно так:



А зачем, почему, где взять и как пользоваться я расскажу ниже.

Читать дальше →

Формула фана или почему мы играем в игры

Reading time6 min
Views66K


Предупреждение: возможно уменьшение удовольствия от игр и фильмов, так как появится осознание и понимание как они устроены.

Как-то захотелось мне сделать игру и у меня возникли вопросы.
Почему мы играем? Из-за каких элементов игры мы получаем фан?

Далее, под словом «фан», имеется ввиду положительные эмоции.

Поиск в интернете точного ответа не дал. Кто-то пишет, что игрокам нравится делать то, что в реальном мире они не могут. Другие пишут, что важен сюжет. По таким описаниям хорошую игру не сделать.

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

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

Проделав этот эксперимент с играми в которые я играл, получился такой набор базовых элементов:
Читать дальше →

Десять вещей, которые можно делать с GraalVM

Reading time22 min
Views47K


От переводчика: GraalVM — новая, интересная технология, но на Хабре по ней не так много статей, которые бы могли показать примеры возможностей Graal. Статья ниже — это не просто перечисление того, что GraalVM умеет, но ещё и небольшой мастер-класс, аналогичный тому, который Chris Seaton и Олег Шелаев проводили на Oracle CodeOne 2018. Вслед за автором, призываю — пробуйте делать примеры из статьи, это действительно интересно.


В GraalVM много всего разного, и, если вы слышали это название раньше, или даже видели доклады, то все равно есть много вещей, о которых вы наверняка ещё не знаете, но которые GraalVM может делать. В этой статье мы рассмотрим разнообразные возможности, которые предоставляет GraalVM и покажем, что с их помощью можно сделать.


  1. Быстрое выполнение Java
  2. Уменьшение времени старта и потребления памяти для Java
  3. Комбинирование JavaScript, Java, Ruby и R
  4. Исполнение программ, написанных на платформо-зависимых языках
  5. Общие инструменты для всех языков программирования
  6. Дополнение JVM приложений
  7. Дополнение платформо-зависимых приложений
  8. Код Java как платформо-зависимая библиотека
  9. Поддержка нескольких языков программирования в базе данных
  10. Создание языков программирования для GraalVM
Читать дальше →

Сбербанк — у Вас для меня «посылочка» есть, но я ее не возьму…

Reading time2 min
Views53K
Рассказ об опыте последнего общения со Сбербанком по вопросу приема платежей по платежным картам на сайте при переходе на новый формат фискальных данных и том бардаке, который это сопровождает.

Не могу молчать, так меня впечатлил их подход к вопросу…


Читать дальше →

PostgreSQL: PipelineDB — агрегирующие запросы в режиме реального времени

Reading time5 min
Views12K
Вас когда-либо просили посчитать количество чего-то на основании данных в бд за последний месяц, сгруппировав результат по каким-то значениям и разбив всё это ещё по дням/часам?
Если да — то вы уже представляете, что вам придётся написать что-то вроде такого, только хуже

SELECT hour(datetime), somename, count(*), sum(somemetric)
from table
where datetime > :monthAgo
group by 1, 2
order by 1 desc, 2

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

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

А что если я скажу, что прямо в PostgreSQL можно создать вьюху, которая на лету будет учитывать только новые поступающие данные в прямо подобном запросе, как выше?

Так вот — это умеет делать расширение PipelineDB

Демо с их сайта, как это работает


Читать дальше →

Russian AI Cup 2018: CodeBall. Зрелищное 3D соревнование

Reading time5 min
Views24K


С 2012 года ежегодно проводится соревнование Russian AI Cup по написанию искусственного интеллекта и ботов, которые ожесточенно сражаются в виртуальном мире вместо своих владельцев. За все прошлые чемпионаты на платформе зарегистрировалось более 20 000 пользователей, которые прислали нам более 150 000 различных решений. Каждый новый чемпионат — это новая игровая задача со своими правилами, законами и механикой. Стараемся постоянно вносить новые идеи и фичи, чтобы игры из года в год становились еще более интересными и зрелищными, развивая наш мотор под капотом проекта и делая всё во славу нашего сообщества.

Этот год не стал исключением. Mail.Ru Group в сотрудничестве с Codeforces.com официально объявляют о датах чемпионата Russian AI Cup 2018 под названием CodeBall.

Итак, поехали!
Читать дальше →

Согласованность данных в высоконагруженных системах

Reading time5 min
Views17K

Проблематика


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

Классический пример, объясняющий, что такое согласованность данных – операция перевода денежных средств с одного счёта на другой. В момент, когда операция изменения баланса одного счёта уже выполнилась, а другого – ещё не успела, может произойти сбой. Тогда с одного счёта средства будут списаны, а на другой не поступят. Такое состояние данных системы называется рассогласованным, и, пожалуй, нет необходимости объяснять, к каким последствиям это может привести. Реляционные СУБД предоставляют механизм транзакций, гарантирующий согласованность данных в любой момент времени. Транзакция – это конечный набор операций, который переводит одно согласованное состояние в другое согласованное состояние.
Читать дальше →

Это вы можете (ЭВМ). Рассказ о забытой телепередаче

Reading time8 min
Views29K

В очередной раз ловлю себя на мысли о том, что "опять нечего посмотреть". Потому что хочется не слащавого и натянутого, а технического, эмоционального, заставляющего подумать и поискать после просмотра дополнительную информацию. Да, конечно, есть такие штуки как MR.ROBOT, но они настолько редки и фрагментарны, что практически полностью теряются на фоне океана откровенно дешевого ширпотреба (да и вообще, хакеры эти вездесущие уже порядком поднадоели ). Вроде бы можно попробовать Discovery или National Geographic, но учиться мне довелось в школе советского образца с советскими преподавателями, поэтому вся эта манная каша «просто о сложном» не лезет совершенно. В общем, по описанным выше причинам, висел у меня в сознании этакий watchdog на заполнение вакантного места на "видео-полке".


И вот недавно, занимаясь по долгу службы инерционными накопителями и просматривая статьи широко известного в узких кругах профессора Гулиа, я вдруг натолкнулся на его рассказ о невероятно популярной в советское время программе "Это вы можете". Удивительно, но о такой программе я не слышал, как не слышали и мои друзья и знакомые. Беглый просмотр пары-тройки найденных на youtube выпусков заставил потирать руки в предвкушении отличного материала. Если интересно, что из этого получилось, — прошу под cut.


Читать дальше →

Самые популярные Node.js-фреймворки 2018 года

Reading time7 min
Views26K
Сегодня мы публикуем перевод материала, автор которого хочет рассказать о самых популярных в наши дни фреймворках для Node.js. В этот список входят Sails.js, Hapi.js, NestJS, LoopBack, Derby.js, Mean.io и Total.js.


Читать дальше →

Тимофей Бокарёв, интересный российский геймдизайнер

Reading time7 min
Views16K
Это ещё один пост только для тех, кому интересен геймдев. Продолжу погружать вас в мир странных явлений. Очень давно хочу рассказать вам про Тимофея Бокарёва, нашего старого друга. Вы можете знать его как человека, который провёл первое исследование аудитории Рунета. Сейчас он живёт в Германии и делает уже не то, что приносит ему деньги, а то, что нравится. И это заодно приносит ему деньги.



Начинал он мотористом в автосервисе давным-давно. Потом делал много всего, а сейчас Тимофей внезапно упоролся по Алексе (это голосовой помощник Амазона) и начал разрабатывать голосовые игры, в частности, для неё.

Но давайте начну с начала. Будет немного баек и хороший взгляд на игровой рынок от человека, к чьему мнению мы всегда прислушиваемся. Потому что он прямо шарит.
Читать дальше →

Строим систему реактивных компонентов с помощью Kotlin

Reading time7 min
Views11K


Всем привет! Меня зовут Анатолий Варивончик, я Android-разработчик Badoo. Сегодня я поделюсь с вами переводом второй части статьи моего коллеги Zsolt Kocsi о реализации MVI, которую мы ежедневно используем в процессе разработки. Первая часть здесь.

Чего мы хотим и как мы это сделаем


В первой части статьи мы познакомились с Features, центральными элементами MVICore, которые можно переиспользовать. Они могут обладать максимально простой структурой и включать всего один Reducer, а могут стать полнофункциональным средством для управления асинхронными задачами, событиями и многим другим.

Каждая Feature отслеживаема — есть возможность подписаться на изменения её состояния и получать уведомления об этом. При этом Feature можно подписать на источник ввода. И в этом есть смысл, ведь с включением Rx в кодовую базу у нас и так появилось множество наблюдаемых объектов и подписок на самых разных уровнях.

Именно в связи с увеличением количества реактивных компонентов пришло время поразмышлять о том, что мы имеем и можно ли сделать систему ещё лучше.
Читать дальше →

Так что же такое pod в Kubernetes?

Reading time6 min
Views92K
Прим. перев.: Эта статья продолжает цикл материалов от технического писателя из Google, работающего над документацией для Kubernetes (Andrew Chen), и директора по software engineering из SAP (Dominik Tornow). Их цель — доступно и наглядно объяснить основы организации Kubernetes. В прошлый раз мы переводили статью про high availability, а теперь речь пойдет про такое базовое понятие в Kubernetes, как pod.



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

Pods (Поды) — базовые строительные блоки Kubernetes, однако даже опытные пользователи Kubernetes не всегда могут объяснить, что же это такое.

Данная публикация предлагает лаконичную мысленную модель, которая проливает свет на определяющие характеристики pod'ов Kubernetes. Ради этой краткости пришлось опустить некоторые другие особенности Pod'ов, такие как liveness и readiness probes, разделение ресурсов (включая появившееся недавно namespace sharingприм. перев.), работу с сетью.
Читать дальше →

«Монстры в играх или делаем страх разнообразным»

Reading time5 min
Views20K

Цикл статей “ монстропедия “ ч.2


image

Зачастую разработчики прибегают к простым решениям для создания иллюзии разнообразия противников в игре. Перекрасить монстра, поменять цвет пламени, натянуть новую шкурку на старую тварь и добавить шипов/рогов/зубов/лап, но известная фраза гласит “старого пса не научишь новым трюкам”
Игроки хотят разнообразие игровых ситуаций, нового ощущения от игры, нового геймплея. Разработчик хочет дать это игроку, но малой кровью, в итоге игроки недовольны из-за однообразного геймплея и скучных противников, бесконечных коридоров кишок, одинаковых подземелий и монстров с одинаковым поведением, но разным внешним видом.(о лвл дизайне будут статьи)

Вы разработчик, что делать?

Читать дальше →

Как НАСА будет использовать роботов для создания ракетного топлива из марсианской почвы

Reading time9 min
Views12K

Инженеры строят прототип роботизированной фабрики, которая создаст воду, кислород и топливо на поверхности Марса



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

2038 год. После 18 месяцев жизни и работы на поверхности Марса команда из шести исследователей погружается на космическую транспортную ракету и отправляется на Землю. Люди не остаются, но работа продолжается без них: автономные роботы продолжат горнодобывающие работы и химический синтез, начатый ими за много лет до того, как эта первая пилотируемая миссия опустилась на планету. Фабрика выдаёт воду, кислород и топливное горючее, используя местные ресурсы, и она будет методично создавать все необходимые материалы для следующей марсианской миссии, которая прибудет через два года.

Эта роботизированная фабрика – не научная фантастика. В её разработке участвует множество команд НАСА. Одна из них – лаборатория Свамп-воркс в Космическом центре Кеннеди во Флориде, руководителем которой являюсь я. Официально она известна, как система локальной утилизации ресурсов (in situ resource utilization, ISRU), но нам нравится называть её «пылетопливной фабрикой» [dust-to-thrust], поскольку она превращает простую пыль в ракетное топливо. Когда-нибудь эта технология позволит людям жить и работать на Марсе – и вернуться на Землю, чтобы рассказать об этом.

Важнейшие заблуждения о разработке игр

Reading time8 min
Views60K
Здравствуйте, коллеги.

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


Читать дальше →

Ассортимент — классическая задача оптимизации

Reading time7 min
Views29K


Ассортимент очень влияет на выручку магазина, но управляется не самим магазином. Судя по последним исследованиям, ассортиментом в России в целом мало кто управляет эффективно. Просто если поддерживать нужные товары в нужном количестве в нужных местах, можно дико поднять эффективность продаж многих магазинов. Дико — это, например, на треть.

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

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, чёрт побери, до сих пор случаются неувязки?
Читать дальше →

Information

Rating
Does not participate
Registered
Activity