Обновить
0
@maxpsyhosread⁠-⁠only

Пользователь

Отправить сообщение

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

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


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

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

Время на прочтение11 мин
Охват и читатели72K
Привет, Хабр!

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

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

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

image
Read more →

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

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

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

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

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

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

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

Время на прочтение2 мин
Охват и читатели74K

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


CheckiO


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


CheckiO


leetcode


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


leetcode

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

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

Время на прочтение6 мин
Охват и читатели14K

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


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



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

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

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

Время на прочтение6 мин
Охват и читатели67K


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

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

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

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

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

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

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

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

Время на прочтение22 мин
Охват и читатели52K


От переводчика: 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
Читать дальше →

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

Время на прочтение2 мин
Охват и читатели53K
Рассказ об опыте последнего общения со Сбербанком по вопросу приема платежей по платежным картам на сайте при переходе на новый формат фискальных данных и том бардаке, который это сопровождает.

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


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

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

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

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 соревнование

Время на прочтение5 мин
Охват и читатели24K


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

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

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

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

Время на прочтение5 мин
Охват и читатели19K

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


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

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

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

Время на прочтение8 мин
Охват и читатели30K

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


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


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

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

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


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

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

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



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

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

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

Время на прочтение7 мин
Охват и читатели12K


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

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


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

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

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

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

Время на прочтение6 мин
Охват и читатели112K
Прим. перев.: Эта статья продолжает цикл материалов от технического писателя из 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прим. перев.), работу с сетью.
Читать дальше →

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

Время на прочтение5 мин
Охват и читатели21K

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


image

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

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

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

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

Время на прочтение9 мин
Охват и читатели12K

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



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

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

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

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

Время на прочтение8 мин
Охват и читатели60K
Здравствуйте, коллеги.

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


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

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

Время на прочтение7 мин
Охват и читатели30K


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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность