Как стать автором
Обновить
-1
0
Finist @Finist

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

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

Webpack: руководство для начинающих

Время на прочтение9 мин
Количество просмотров294K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «Webpack: A gentle introduction» автора Tyler McGinnis.

Перед изучением новой технологии задайте себе два вопроса:

  1. Зачем нужен этот инструмент?
  2. Какие задачи он выполняет?

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

API портал: на что обратить внимание при дизайне. Опыт Wrike

Время на прочтение6 мин
Количество просмотров5K


Использование публичных API помогает компаниям увеличивать ценность собственного ресурса, создавать уникальный контент и удовлетворять требования различных бизнес-задач. Wrike —  не исключение. На базе API Wrike создано уже более 30 тысяч приложений. Число пользователей продукта растет, а значит и требования к порталу возрастают с каждым днем.

В статье я поделюсь своим опытом редизайна интерфейса dev-портала Wrike и расскажу, на что стоит обратить внимание.
Читать дальше →

Процесс: Создание Vue 3

Время на прочтение10 мин
Количество просмотров12K


Уроки, полученные от написания следующей основной версии Vue.js


Автор: Эван Ю (Evan You)


В течение прошлого года команда Vue работала над следующей основной (major) версией Vue.js, которую мы надеемся выпустить в первой половине 2020 года (эта работа продолжается на момент написания данной статьи). Идея новой основной версии Vue сформировалась в конце 2018 года, когда кодовой базе Vue 2 было около двух с половиной лет. Это может показаться не таким уж долгим периодом в жизни программного обеспечения, но идеи фронт-энда сильно изменились за этот период.

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

Зачем нужен Refresh Token, если есть Access Token?

Время на прочтение4 мин
Количество просмотров255K
Недавно мы в Voximplant улучшали авторизацию в SDK. Посмотрев на результаты, я несколько опечалился, что вместо простого и понятного токена их стало две штуки: access token и refresh token. Которые мало того что надо регулярно обновлять, так еще документировать и объяснять в обучающих материалах. Помня, что в OAuth два токена нужны в основном из-за разных сервисов, на которых они используются (даже вопрос на stackoverflow есть), а у нас такой сервис один, я несколько офигел и пошел на второй этаж вытрясать души из разработчиков. Ответ получился неожиданным. Его нет на stackoverflow. Зато он есть под катом.
Читать дальше →

Пять простых шагов для понимания JSON Web Tokens (JWT)

Время на прочтение5 мин
Количество просмотров706K

jwt


Представляю вам мой довольно вольный перевод статьи 5 Easy Steps to Understanding JSON Web Tokens (JWT). В этой статье будет рассказано о том, что из себя представляют JSON Web Tokens (JWT) и с чем их едят. То есть какую роль они играют в проверке подлинности пользователя и обеспечении безопасности данных приложения.

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

Процедурная гидрология: динамическая симуляция рек и озёр

Время на прочтение15 мин
Количество просмотров8.4K
Примечание: полный исходный код проекта выложен на Github [здесь]. В репозитории также содержится подробная информация о том, как читать и использовать код.

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

Я исследовал уже существующие методики процедурной генерации рек и озёр, но найденные результаты меня не устроили.

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

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

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

В своём методе я стремлюсь одновременно и к простоте, и к реализму ценой небольшого повышения сложности базовой системы эрозии. Рекомендую прочитать мою предыдущю статью об этой системе [здесь, перевод на Хабре], потому что новая модель строится на её основе.

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

Время на прочтение10 мин
Количество просмотров20K
Эдди Османи, в статье «Цена JavaScript в 2018 году», озвучил одну ценную мысль: время, необходимое на обработку скрипта размером 200 Кб, и на обработку изображения, имеющего такой же размер, серьёзно различается. Дело в том, что при обработке кода браузеру нужно проделать более масштабную работу, чем при подготовке к использованию изображений. Вот что об этом говорится в статье:

JPEG-изображение нужно декодировать, растеризовать и вывести на экран. А JS-бандл надо, если рассматривать это упрощённо, загрузить, распарсить, скомпилировать, выполнить. На самом же деле движку приходится решать и другие задачи в процессе обработки JS-кода. В целом, стоит учитывать, что на обработку JavaScript-кода, размеры которого, в байтах, сопоставимы с размерами других материалов, тратится гораздо больше системных ресурсов.

Эти слова были написаны в 2018 году, но они до сих пор более чем справедливы. Правда, учитывая текущую обстановку, высказанная здесь мысль сегодня воспринимается немного иначе.


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

Верстка email рассылок от А до Я для чайников

Время на прочтение9 мин
Количество просмотров411K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →

9 советов по повышению производительности Vue

Время на прочтение8 мин
Количество просмотров36K
В этой статье собрано девять советов о том как повысить производительность вашего приложения на Vue, увеличить скорость отображения и уменьшить размер бандла.
Читать дальше →

Интересные новинки Vue 3

Время на прочтение9 мин
Количество просмотров29K

Вместо предисловия


Vue используется во всех проектах FunCorp. Мы внимательно следим за развитием фреймворка, постоянно улучшаем процесс разработки и внедряем лучшие практики. И, конечно же, мы не могли пройти мимо и не перевести статью Филиппа Раковски, сооснователя VueStorefront, про новые фичи Vue 3, серьёзно влияющие на написание кода.

image
В прошлый раз мы рассматривали фичи, которые влияют на производительность Vue 3. Нам уже известно, что приложения, написанные на новой версии фреймворка, работают очень быстро, но производительность — не самое важное изменение. Для большинства разработчиков намного важнее то, как Vue 3 повлияет на стиль написания кода.
Читать дальше →

Выездное обслуживание, заявки на карте, геолокация. Выбор картографического сервиса. Взгляд со стороны продукта

Время на прочтение10 мин
Количество просмотров3.2K
Всем привет! Мы разрабатываем Okdesk — облачный Helpdesk для постпродажного сервисного обслуживания b2b клиентов. Среди пользователей нашего продукта — ЦТО и АСЦ по кассовой технике, интеграторы по автоматизации торговли, службы эксплуатации ритейл-сетей, компании обслуживающие коммерческую недвижимость и многие другие сервисные компании. Спецификой сервиса в таких компаниях является большое количество работы «в полях»: работа с оборудованием, техническое обслуживание инфраструктуры, планово-профилактические работы — всё это требует физического нахождения специалиста на объекте. Это обстоятельство накладывает ряд дополнительных требований к Helpdesk-решению, а именно: мобильное рабочее место инженера и визуализация запланированных работ на карте с отображением ближайших сотрудников. Мобильное приложение Okdesk для инженеров (под iOS и Android) появилось довольно давно и мы продолжаем его активно развивать. А вот отображение заявок и ближайших сотрудников на карте мы выпустили на днях.

image

Но речь в статье пойдет не о новой функциональности — заинтересованные могут получить 14-ти дневный бесплатный триал-аккаунт на сайте и познакомиться с системой самостоятельно. Речь пойдет о выборе картографических сервисов для реализации функциональности и какие продуктовые требования к ним предъявлять. Если для вашего проекта задача выбора решений для картографических модулей актуальна — добро пожаловать под кат.

Как айтишнику в иностранном банке доказать происхождение средств

Время на прочтение7 мин
Количество просмотров20K
image

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

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

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

Умный парсер числа, записанного прописью

Время на прочтение10 мин
Количество просмотров30K


Пролог


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


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


Для ленивых:
Ссылка на проект github: ссылка.


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

Построение сервис-ориентированной архитектуры на Rails + Kafka

Время на прочтение8 мин
Количество просмотров6.5K
Привет, Хабр! Представляю вашему вниманию пост, который является текстовой адаптацией выступления Stella Cotton на RailsConf 2018 и переводом статьи «Building a Service-oriented Architecture with Rails and Kafka» автора Stella Cotton.

В последнее время отчетливо виден переход проектов от монолитной архитектуры в пользу микросервисов. В этом гайде мы узнаем основы Kafka и как событийно-ориентированный подход может улучшить ваше Rails приложение. Также мы поговорим о проблемах мониторинга и масштабируемости сервисов, которые работают через событийно-ориентированный подход.
Читать дальше →

Знакомимся с микросервисным фреймворком Moleculer

Время на прочтение7 мин
Количество просмотров19K
Привет, %habrauser%!

Сегодня я хочу рассказать тебе об одном отличном, на мой взгляд, микросервисном фреймворке Moleculer.



Изначально этот фреймворк был написан на Node.js, но в последствии у него появились порты и на других языках таких как Java, Go, Python и .NET и, скорее всего, в ближайшем будущем, появятся и другие имплементации. Мы используем его в продакшене в нескольких продуктах уже около года и словами сложно описать, каким благословением он нам показался после использования Seneca и своих_велосипедов. Мы получили всё что нам нужно из коробки: сбор метрик, кэширование, балансировка, fault-tolerance, транспорты на выбор, валидация параметров, логирование, лаконичное объявление методов, несколько способов межсервисного взаимодействия, миксины и многое другое. А теперь по порядку.
Читать дальше →

Способы применения и искажения меткости в играх. Наглядные графики для сравнения

Время на прочтение6 мин
Количество просмотров15K
Вычислять факт попадания в играх на основе полученной меткости можно по разному:

  • сравнивая с одним псевдослучайным числом (которое тоже можно получать по разному [1]);
  • сравнивая с наибольшим или наименьшим из двух псевдослучайных чисел;
  • сравнивая среднее из двух и более случайных чисел (среднее тоже можно считать по разному).


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

Точно также по разному можно рассчитывать наносимый урон, особенно на основе дайсов (кубиков).

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

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

Как создать процедуральный арт менее чем за 100 строк кода

Время на прочтение6 мин
Количество просмотров24K


Generative art (генеративное или процедуральное искусство) может отпугнуть, если вы никогда с ним раньше не сталкивались. Если коротко, то это концепция искусства, которое буквально создает само себя и не требует хардкорных знаний программирования для первого раза. Поэтому я решил немного разбавить нашу ленту, погнали.
Читать дальше →

5+1 случай, когда спецификация REST API играет огромную роль

Время на прочтение13 мин
Количество просмотров36K

В этой статье речь пойдёт о написании и поддержке полезной и актуальной спецификации для REST API-проекта, которая позволит сэкономить много лишнего кода, а также серьёзно улучшить целостность, надежность и прозрачность прокта в целом.


Что такое RESTful API?



Это миф.


Серьёзно, если вы думаете, что в вашем проекте RESTful API, вы почти наверняка ошибаетесь. Идея RESTful — в построении API, который во всём соответствовал бы архитектурным правилам и ограничениям, описанным стилем REST, однако в реальных условиях это оказывается почти невозможно.

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

Имитация естественного движения: Steering Behaviors — 2

Время на прочтение24 мин
Количество просмотров12K
Первая часть статьи здесь.


Часть 6. Избегание коллизий


Для правильной навигации NPC часто требуется способность избегать препятствий. В этой части мы рассмотрим steering behavior collision avoidance (избегание коллизий), позволяющее персонажам благополучно уворачиваться от препятствий в окружении.



Введение


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

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


Анализируются препятствия перед персонажем и выбирается ближайшее (наиболее угрожающее).

Поведение избежания коллизий — это не алгоритм поиска путей. Оно заставляет персонажей двигаться по окружению, избегая препятствий, постепенно находя путь сквозь блоки — но в случаях с препятствиями в виде L или T, например, оно действует не очень хорошо.

Процедурная генерация подземелий в roguelike

Время на прочтение31 мин
Количество просмотров47K
image

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

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

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

Конечно же, преимущества процедурных карт бессмысленны без большой вариативности механик и контента — однообразный hack-and-slash здесь не подойдёт. Поэтому все roguelike, выдержавшие испытание временем, имеют глубокий геймплей.

Этот пост является результатом моей работы над генерацией карт для Cogmind.
Читать дальше →

Информация

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