Как стать автором
Обновить
0
Игорь Хорт @coolgoodigorread⁠-⁠only

Веб

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

Базовые алгоритмы нахождения кратчайших путей во взвешенных графах

Время на прочтение5 мин
Количество просмотров258K
Наверняка многим из гейм-девелоперов (или просто людям, увлекающимися програмировагнием) будет интересно услышать эти четыре важнейших алгоритма, решающих задачи о кратчайших путях.

Сформулируем определения и задачу.
Графом будем называть несколько точек (вершин), некоторые пары которых соединены отрезками (рёбрами). Граф связный, если от каждой вершины можно дойти до любой другой по этим отрезкам. Циклом назовём какой-то путь по рёбрам графа, начинающегося и заканчивающегося в одной и той же вершине. И ещё граф называется взвешенным, если каждому ребру соответствует какое-то число (вес). Не может быть двух рёбер, соединяющих одни и те же вершины.
Каждый из алгоритмов будет решать какую-то задачу о кратчайших путях на взвешенном связном. Кратчайший путь из одной вершины в другую — это такой путь по рёбрам, что сумма весов рёбер, по которым мы прошли будет минимальна.
Для ясности приведу пример такой задачи в реальной жизни. Пусть, в стране есть несколько городов и дорог, соединяющих эти города. При этом у каждой дороги есть длина. Вы хотите попасть из одного города в другой, проехав как можно меньший путь.
Читать дальше →
Всего голосов 79: ↑71 и ↓8+63
Комментарии31

21 бесплатный учебный ресурс для разработчиков игр

Время на прочтение8 мин
Количество просмотров134K
В интернете полным-полно создателей контента, и каждый хочет привлечь к себе внимание. Но, как ни странно, хороший учебный ресурс найти нелегко, а бесплатный – еще сложнее. Мы публикуем перевод материала, в котором автор собрал ссылки на самые авторитетные и полезные обучающие площадки.


Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии7

Диаграмма Вороного и её применения

Время на прочтение25 мин
Количество просмотров123K
Доброго всем времени суток, уважаемые посетители сайта Хабрахабр. В данной статье я бы хотел рассказать вам о том, что такое диаграмма Вороного (изображена на картинке ниже), о различных алгоритмах её построения (за , — пересечение полуплоскостей, — алгоритм Форчуна) и некоторых тонкостях реализации (на языке C++).



Также будет рассмотрено много интересных применений диаграммы и несколько любопытных фактов о ней. Будет интересно!
Читать дальше →
Всего голосов 92: ↑89 и ↓3+86
Комментарии49

Игровая индустрия: полезные материалы для геймдевелопера от A до Z

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

Друг наших образовательных программ Михаил Пименов,  CEO компании Wonder Games и Team Lead инди-проекта "Guard of Wonderland" сам не раз задававший себе эти вопросы, создал для себя выборку всевозможных материалов по индустрии геймдева. От полезных ресурсов, до сообществ, подкастов, книг и фильмов, которые призваны помочь понять, с чего начинается и чем заканчивается разработка игрового проекта. Объединив наши силы, мы с Мишей сделали эту статью с подборкой полезных материалов по игровой индустрии. Вы найдете подборку под катом.


Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии26

Планетарный ландшафт

Время на прочтение51 мин
Количество просмотров21K
Трудно поспорить, что ландшафт — неотъемлемая часть большинства компьютерных игр на открытых пространствах. Традиционный метод реализации изменения рельефа окружающей игрока поверхности следующий — берем сетку (Mesh), представляющую из себя плоскость и для каждого примитива в этой сетке производим смещение по нормали к этой плоскости на значение, конкретное для данного примитива. Говоря простыми словами, у нас есть одноканальная текстура размером 256 на 256 пикселей и сетка плоскости. Для каждого примитива по его координатам на плоскости берем значение из текстуры. Теперь просто смещаем по нормали к плоскости координаты примитива на полученное значение(рис.1)


Рис.1 карта высот + плоскость = ландшафт

Почему это работает? Если представить, что игрок находится на поверхности сферы, и радиус этой сферы чрезвычайно велик по отношению к размеру игрока, то искривлением поверхности можно пренебречь и использовать плоскость. Но что если не пренебрегать тем фактом, что мы находимся на сфере? Своим опытом построения такого рода ландшафтов я хочу поделиться с читателем в данной статье.
Читать дальше →
Всего голосов 82: ↑82 и ↓0+82
Комментарии16

Визуализация «народных» объектов Санкт-Петербурга на основе анализа публикаций в соцсетях — коротко об исследовании

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

Ранее мы рассказали о первой части исследования, которое провели магистры, аспиранты и сотрудники Института дизайна и урбанистики ИТМО. Они проанализировали несколько миллионов публикаций из популярной в России соцсети — Instagram — за 2018, 2019 и 2020-й и определили, о каких городских объектах пишут чаще всего, и какие из них наиболее популярны среди аудитории.

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

Читать далее
Всего голосов 9: ↑7 и ↓2+8
Комментарии4

Создайте свой собственный NeXT с помощью виртуальной машины

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

Компьютеры NeXT стоили примерно как новая машина, поэтому были недоступны большинству людей. Каково это — пользоваться топовой системой в начале 90-х? Давайте создадим свой NeXT, чтобы узнать это!

Читать далее
Всего голосов 18: ↑17 и ↓1+26
Комментарии5

Apache Flink и потоковая обработка данных для решения задач IoT

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

К 2021 году прогнозируется, что около 16 млрд из приблизительно 28 млрд подключенных устройств по всему миру, будут так или иначе связаны в рамках концепции интернета вещей. Интернет уходит в вещность, и надо как-то справляться с растущим потоком данных.

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

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Бывший проектировщик микросхем для Военно-Воздушных Сил США расскажет в Cколково как верифицировать FIFO

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

Если вы изучили начала цифровой схемотехники и компьютерной архитектуры по книжке Харрис & Харрис и потом вознамерились пойти собеседоваться на позицию проектировщика микросхем в Apple или NVidia, то вы интервью не пройдете. Посколько вы наверняка получите вопрос про реализацию в хардвере очередей FIFO, а это в Харрис & Харрис не описано.

Хуже того, даже если вы возьмете книжку Digital Design by William Dally & Curtis Harting, которую используют для обучения студентов в Стенфорде, и прочтете ее от корки до корки, то у вас все равно мало шансов, потому что, хотя FIFO там и есть, но в очень базисной форме, а контроль потока данных заканчивается на скид-буферах.

А что же хотят электронные компании?
Всего голосов 18: ↑17 и ↓1+24
Комментарии24

4 шага на пути к идеальному бизнесу: digital-стратегия для Студии паркета

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

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

В этом кейсе расскажем о разработке digital-стратегии для салона напольных покрытий «Студия Паркета». Мы вывели бизнес на новый уровень, решив четыре простые задачи.

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

Сделали анализ спроса и оценили стоимость рекламы. Запуск рекламы без оценки спроса равносилен игре в лотерею: деньги отдали, а лиды не пришли. Мы собрали и проработали семантику, чтобы оценить конверсионность рекламных каналов.

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

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

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Катастрофы, с которыми я столкнулся в мире микросервисов

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

Прим. перев.: автор этой статьи — engineering manager из Испании, работающий в цифровой торговой площадке Adevinta, представленной в 16 странах, — делится своими наблюдениями о частых проблемах, которые он встречал у создателей микросервисов. Об этих вызовах стоит знать заранее, чтобы не столкнуться с ними тогда, когда их решение может оказаться слишком затратным.

Когда пост Мартина Фаулера о микросервисах вышел в 2014 году, команды, в которых я работал, уже занимались SOA-приложениями. Эта статья и последующий хайп коснулись почти каждой команды разработчиков в мире. Стек Open Source-софта от Netflix был самым крутым в то время, поскольку позволял инженерам по всему миру перенимать опыт Netflix в распределенных системах. Если мы взглянем на работу разработчиков программного обеспечения сегодня, более шести лет спустя, большая её часть касается архитектуры микросервисов.

Читать далее
Всего голосов 78: ↑78 и ↓0+78
Комментарии23

Тестирование From Zero to Hero. Пролог к части 2, или Как мы пилили монолит

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

Меня зовут Сергей, я тимлид команды андроид Тинькофф. 

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

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

Здесь я хочу рассказать о том, что мы имели ДО и что получилось сейчас. 

Давайте разбираться
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Основы RPA: программные роботы и зачем они нужны

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

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

Статья написана при поддержке технического эксперта UiPath: Кристины Виролайнен.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии5

Менеджер мечты в разработке ИТ-продуктов

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

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

Листай дальше
Всего голосов 37: ↑32 и ↓5+33
Комментарии5

Вместо 24 JOIN в SQL запросе — реализация в графовой базе данных

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

Многие не знают, что некоторые сложные для написания и неэффективные для выполнения SQL-запросы можно легко выразить и эффективно выполнить в графовой базе данных. Это справедливо даже для тех, кто уже знает, что графовые алгоритмы являются наиболее эффективным, а иногда и единственным решением для сложных бизнес-задач, таких как кластеризация пользователей (с использованием Лувенского алгоритма), поиск инфлюенсеров - людей или компаний (алгоритмом PageRank) или прогнозирование поведения пользователей для персональных рекомендаций (алгоритмом label propagation).

В этой статье мы опишем SQL запрос с 24 JOIN в корпоративный knowledge graph и покажем, что задачу можно решить в графовой базе данных - и это будет понятней, более легко поддерживаться и эффективно выполняться. Пример взят из проблемы, описанной в сообществе: https://community.tigergraph.com/

Читать далее
Всего голосов 10: ↑4 и ↓6-1
Комментарии33

Метод тотального контроля (МТК-6) и Повышение качества управленческого труда в условиях автоматизации рабочих мест

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

Автоматизированные системы должны быть рассчитаны для тотального контроля человеком, управлению подлежат все их функции. Метод тотального контроля(МТК6):

I. Наблюдение как система выполняет операции

II. Тестирование и постоянное обновление

III.Определение тенденций развития

IV.Детальный анализ данных на выходе

V. Написание отчёта о результатах

VI.Завершающий диалог с системой

1. Наблюдение как система работает. Наблюдение – целенаправленное, систематическое восприятие исследуемого объекта, на основе регистрации избранных единиц (показателей, признаков), характеризующих особенности изучаемого явления. На практике это выглядит так: детальное отслеживание всех действий системы, проведение хронометража, применение цикла проверки: программируй, дай системе выполнить, проверь, спроси себя «Что не так?» и повторяй цикл до достижения успеха.

2. Тестирование и обновление всей системы. Обеспечение качества(Quality Assurance), применение всех видов и методик тестирования, написание отчётов о дефектах для последующего фикса разработчиком в новой версии системы. Тестирование путем деструктивного мышления обеспечивает качество, конструктивно созидая новый продукт, обновляя его. Процесс обновления систем заключается в последовательном выполнении следующих этапов:

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

Читать далее
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Информационная безопасность облаков: как составлять ТЗ

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

Ранее мы уже обсудили вопросы законодательного регулирования ИБ и определили границы зон ответственности облачных провайдеров и клиентов.

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

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Делаем видеоролик для продвижения приложения или игры: 5 вещей, о которых стоит задуматься

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

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

Статья написана в Alconost.

Примеры и полезные ссылки — под катом.

Читать далее
Рейтинг0
Комментарии1

Книга «Облачные архитектуры: разработка устойчивых и экономичных облачных приложений»

Время на прочтение19 мин
Количество просмотров5.7K
image Привет, Хаброжители! Облачные вычисления — это, пожалуй, наиболее революционная разработка в IT со времен виртуализации. Облачно-ориентированные архитектуры обеспечивают большую гибкость по сравнению с системами предыдущего поколения. В этой книге продемонстрированы три важнейших аспекта развертывания современных cloud native архитектур: организационное преобразование, модернизация развертывания, паттерны облачного проектирования.

Книга начинается с краткого знакомства с облачно-ориентированными архитектурами — на примерах объясняется, какие черты им присущи, а какие нет. Вы узнаете, как организуется внедрение и разработка облачных архитектур с применением микросервисов и бессерверных вычислений как основ проектирования. Далее вы изучите такие столпы облачно-ориентированного проектирования, как масштабируемость, оптимизация издержек, безопасность и способы достижения безупречной эксплуатационной надежности. В заключительных главах будет рассказано о различных общедоступных архитектурах cloud native, — от AWS и Azure до Google Cloud Platform.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

Как распознать кабальный контракт: договоры в IT согласно законам Украины

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

Приветствуем вас, коллеги.

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

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

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

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

Хочу знать больше
Всего голосов 11: ↑8 и ↓3+6
Комментарии14
1
23 ...

Информация

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