Как стать автором
Обновить
19
0.2
Rive @Rive

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

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

Это норма: что такое карты нормалей и как они работают

Время на прочтение6 мин
Количество просмотров80K
На протяжении нескольких лет я пытался разобраться в картах нормалей и в проблемах, которые обычно возникают при работе с ними.

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

Первые созданные человеком 3D-модели выглядели примерно так:

image

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

Наиболее очевидное решение: добавить больше полигонов, сделав поверхность более равномерной и гладкой, вплоть до того, чтобы полигоны казались единой гладкой поверхностью. Но оказывается, для того, чтобы сделать поверхности наподобие сфер гладкими, нужно огромное количество полигонов (особенно сегодня).
Читать дальше →
Всего голосов 52: ↑49 и ↓3+66
Комментарии6

Создаем современное веб приложение. Знакомство с проектом и подготовка к работе. Часть 1

Время на прочтение6 мин
Количество просмотров18K
image
В этой серии статей мы пройдем полный цикл создания клиентской части приложения и напишем небольшую библиотеку компонентов с использованием современного стека технологий.
Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии16

Опрос по инструментам фронтенда 2019 — результаты

Время на прочтение23 мин
Количество просмотров23K
TL;DR. В большинстве категорий теперь выделяются явные лидеры — несколько лет назад такого не было. Это помогает накоплению знаний. Поэтому Навыки владения инструментами в среднем становятся глубже у разработчиков всех уровней.

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

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

Результаты


Итак, к делу! Возьмите чай/кофе/напиток на свой выбор и посмотрим на результаты…
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии18

Писатели про… Писатели про… Писатели прод, или Как в России вымерли и возродились фантасты

Время на прочтение8 мин
Количество просмотров34K
В Хеллоуин положено говорить о страшном, поэтому сегодняшний наш блог – о современной российской фантастике.

Профессиональные писатели-фантасты, как известно, вымерли в России где-то во второй половине 2011 года, когда в издательствах все начало сыпаться к чертям собачьим. Продажи «художки» тогда резко просели, причем практически по всем позициям, за исключением детской литературы. Издатели схватились сначала за голову, потом за карман, и, неоптимистично позвенев мелочью, обратились к народу.

Большинству издаваемых ими авторов они сказали примерно то же самое, что заявил один вредный дед своему популярному впоследствии внучку: «Ну, Лексей, ты — не медаль, на шее у меня — не место тебе, а иди-ка ты в люди…».

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

Русская фантастика, безусловно, не умерла – ее и дустом вывести непросто, — но писательство перестало быть профессией, став чистой воды хобби.

image

Однако не прошло и пяти лет, как вымершая было популяция была восстановлена: фантасты-профессионалы воскресли в лучших традициях фениксов и ренессансов. Воскресило их магическое слово «прода».
Читать дальше →
Всего голосов 100: ↑83 и ↓17+66
Комментарии500

«Красный круче синего»: иерархия цвета в различных культурах

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

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

Они выяснили это на основе простого теста на идентификацию цвета, в котором 20 респондентов распределили 330 цветных карточек по названию.

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

Теория была революционной — и она сформировала наше понимание того, как появляются цветовые термины.

image

Если бы я показал вам эти образцы и попросил назвать цвета, что бы вы ответили?
Всего голосов 39: ↑38 и ↓1+37
Комментарии41

Дробное броуновское движение

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

Введение


fBM расшифровывается как Fractional Brownian Motion (дробное броуновское движение). Но прежде чем начать говорить о природе, фракталах и процедурных рельефах, давайте на минуту углубимся в теорию.

Броуновское движение (Brownian Motion, BM), просто, без «дробности» — это движение, при котором положение объекта с течением времени меняется со случайными инкрементами (представьте последовательность position+=white_noise();). С формальной точки зрения BM является интегралом белого шума. Эти движения задают пути, которые являются случайными, но (статистически) самоподобными, т.е. приближенное изображение пути напоминает весь путь. Fractional Brownian Motion — это схожий процесс, в котором инкременты не полностью независимы друг от друга, а в этом процессе существует некая память. Если память имеет положительную корреляцию, то изменения в заданном направлении будут иметь тенденцию к будущим изменениям в том же направлении, и путь при этом будет плавнее, чем при обычном BM. Если память имеет отрицательную корреляцию, то за изменением в положительную сторону с большой вероятностью последует изменение в отрицательную, и путь окажется гораздо более случайным. Параметр, управляющий поведением памяти или интегрированием, а значит и самоподобием, её размерностью фрактала и спектром мощности, называется показателем Хёрста и обычно сокращается до H. С математической точки зрения H позволяет нам интегрировать белый шум только частично (допустим, выполнить только 1/3 интегрирования, отсюда и «дробность» в названии) для создания fBM под любые нужные нам характеристики памяти и внешний вид. H принимает значения в интервале от 0 до 1, которые описывают, соответственно, грубое и плавное fBM, а обычное BM получается при H=1/2.


Здесь функция fBM() использована для генерации рельефа, облаков, распределения деревьев, вариаций их цветов и деталей крон. «Rainforest», 2016: https://www.shadertoy.com/view/4ttSWf
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии8

Как линуксовый админ управлял детским хором с помощью системы распознавания нот под Ubuntu 16.04. Микрофон и аккорды

Время на прочтение4 мин
Количество просмотров11K
Что нужно, чтобы лето проходило весело? Нужна музыка! Но если музыка записана нотами на бумаге, а вы — обыкновенный системный администратор, и вам поручили задачу создать детский хор, то в качестве одного из вариантов решения этой проблемы представляю несколько полезных программ. Они написаны на Java и доступны как в репозитарии Ubuntu 16.04, так и на Гитхабе для решения задачи машинного распознавания нот, создания музыкальных партий, выгрузки и редактирования получившегося музыкального продукта в популярные форматы и раздачи файлов (а также и подзатыльников) отдельным исполнителям. Тема, я надеюсь, будет интересна читателям нашего блога.(UPD1. Есть добавление по системе оптического распознавания TESSERACT 5.0.0-alpha для быстрой работы системы на современных процессорах.)

image
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии33

Elm. Удобный и неловкий. Json.Encoder и Json.Decoder

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

Продолжим говорить о Elm 0.18.


Elm. Удобный и неловкий
Elm. Удобный и неловкий. Композиция
Elm. Удобный и неловкий. Http, Task


В этой статье рассмотрим вопросы энкодеров/декодеров.


Декодеры/энкодеры используются для:


  1. преобразование ответов от сторонних ресурсов (Http, WebSocket и прочее);
  2. взаимодействия через порты. Подробнее про порты и нативный код расскажу в следующих статьях.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

Elm. Удобный и неловкий

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

Поговорим о Elm.


Elm — функциональный язык программирования для frontend-разработки. Синтаксис похож на Haskell, но значительно упрощен и специализирован. Исходный код на Elm компилируется в нативный JavaScript. Скомпилированный JavaScript содержит код приложения, которое управляют поддеревом DOM.

Читать дальше →
Всего голосов 18: ↑14 и ↓4+10
Комментарии8

Модели заточки в современных играх

Время на прочтение9 мин
Количество просмотров41K
Каждого гейм-дизайнера волнуют два вопроса: как удерживать игроков и как получать прибыль от своих игр? Обе темы очень большие, им посвящено множество статей, и, не побоюсь этого слова, трудов. Здесь же мы коснёмся одного практического инструмента, нацеленного как на поддержания интереса у пользователей, так и на монетизацию игры. Сегодня мы рассмотрим популярные механики заточки в современных и минувших играх.


Читать дальше →
Всего голосов 41: ↑29 и ↓12+17
Комментарии26

Сюжетно-ориентированные игры

Время на прочтение8 мин
Количество просмотров58K
Классические компьютерные игры начались ещё, собственно, до появления компьютеров в виде интерактивных книг. Скорее всего, в детстве у вас была одна такая либо Браславского, либо вообще из цикла про Стальную Крысу Гаррисона.



Смысл очень прост: внутри подаётся сюжет, который зависит от вашего выбора. Простейшее ветвление такое: вы дошли до развилки. Если вы хотите повернуть направо, откройте страницу 11, если налево – 182. На соответствующих страницах будет продолжение истории про то, что случится после вашего выбора.

Базовый сюжет строился в виде системы узлов и переходов. За один проход вы задействовали примерно 25-35% страниц книги.



То есть техническая вариативность сводилась к тому, что вы всё равно получали 80% основного сюжета, но просто не всегда линейно и не всегда с одной и той же точки зрения. И автоматизации там не было почти никакой, кроме того, что вы листали страницы.
Читать дальше →
Всего голосов 68: ↑66 и ↓2+64
Комментарии33

Про Бурали-Форти, Пуанкаре и то самое определение единицы

Время на прочтение11 мин
Количество просмотров81K
Если вы, уважаемый мой читатель, имеете обыкновение проводить много времени в интернете, вы наверняка уже видели эту картинку с цитатой:

image

Наверняка также вы задавались вопросом: что, чёрт подери, здесь написано? Формула из этой цитаты интересна тем, что у человека, имеющего высшее математическое образование, этот вопрос возникает столь же неумолимо, как и у любознательного семиклассника. У нелюбознательных семиклассников несколько иной круг интересов, выходящий за рамки данной статьи; однако даже они не откажут себе в удовольствии похихикать над «этими чокнутыми ботаниками», или как оно там формулируется на современном молодёжном сленге.

В нижеследующем тексте я раскрою перед вами тайну этого загадочного сочетания символов. Пожалуйте под кат, однако помните поучительную историю о любопытной Варваре, которой на базаре рассказали про парадокс Банаха-Тарского, отчего она сошла с ума, разрезала себе нос на конечное количество частей и склеила из них рогатую сферу Александера.
N.B. Я предупреждал.
Всего голосов 145: ↑141 и ↓4+137
Комментарии146

Использование потенциальных полей в сценарии стратегии реального времени

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

Этот урок описывает метод планирования течения игры и навигации юнитов, который использует многоагентные потенциальные поля. Он основан на работах под номерами [1, 2, 3]. (Смотри в конце статьи ссылки на используемые материалы)



Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии17

Топ-10 data mining-алгоритмов простым языком

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


Примечание переводчика: Мы довольно часто пишем об алгоритмической торговле (вот, например, список литературы по этой теме и соответствующие аналитические материалы) и API для создания торговых роботов, сегодня же речь пойдет непосредственно об алгоритмах, которые можно использовать для анализа различных данных (в том числе на финансовом рынке). Материал является адаптированным переводом статьи американского раработчика и аналитика Рэя Ли.

Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.

Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
Читать дальше →
Всего голосов 55: ↑49 и ↓6+43
Комментарии6

Движок СУБД на PHP

Время на прочтение4 мин
Количество просмотров3.3K
Здравствуйте, уважаемые читатели. Моя СУБД не является портом никакой из существующих СУБД на PHP (в отличие от C#-SQLITE, к примеру), а является уникальной разработкой. Основным отличием от существующих движков, вроде TxtSQL, является поддержка индексов. Если используется только PRIMARY INDEX, скорость вставки на моём ноутбуке достигает 5000/сек. Для PHP, как мне кажется, это вполне неплохо.
Читать дальше →
Всего голосов 193: ↑164 и ↓29+135
Комментарии186

Распознавание изображений. Алгоритм Eigenface

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

Введение



Я продолжаю серию статей посвящённую тематике pattern recognition, computer vision и machine learning. Сегодня я вам представляю обзор алгоритма, который носит название eigenface.



В основе алгоритма лежит использование фундаментальных статистических характеристик: средних (мат. ожидание) и ковариационной матрицы; использование метода главных компонент. Мы также коснёмся таких понятий линейной алгебры, как собственные значения (eigenvalues) и собственные вектора (eigenvectors) (wiki: ru, eng). И вдобавок, поработаем в многомерном пространстве.
Как бы страшно всё это не звучало, данный алгоритм, пожалуй, является одним из самых простых рассмотренных мною, его реализация не превышает нескольких десятков строк, в тоже время он показывает неплохие результаты в ряде задач.

Мне не страшно.
Всего голосов 132: ↑127 и ↓5+122
Комментарии48

В поисках НЛО. Детект объектов на изображении

Время на прочтение6 мин
Количество просмотров55K
Взлом captcha это, конечно, интересно и познавательно, но, по большому счёту, бесполезно. Это лишь частный случай задачи, которая возникает в одном из интересных направлений развития IT – распознавание образов (pattern recognition).



Сегодня мы рассмотрим алгоритм (точнее, более правильно считать это методикой, т.к. она объединяет в себе множество алгоритмов), который стоит на стыке таких областей, как Machine Learning и Computer Vision.

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

Уберите детей!
Всего голосов 92: ↑91 и ↓1+90
Комментарии37

Защита прав потребителей в России: Мы далеко не последние

Время на прочтение6 мин
Количество просмотров8.6K
Устал я слушать от знакомых причитания по качеству защиты прав покупателей в России и завистливые возгласы: «Вот на западе....».
Нет, я не хочу сказать что я негативно отношусь к западу, просто хочу показать, что и у наших граждан, есть защита. И закон о защите прав потребителей далеко не такой, каким многие его представляют.
Что же даёт нам закон?
Всего голосов 165: ↑164 и ↓1+163
Комментарии110

Распознавание речи. Часть 3. Голосовой тракт, слуховой тракт

Время на прочтение7 мин
Количество просмотров24K
Зачем нам это надо

Когда заходит разговор о распознавании речи, невозможно оставаться исключительно в сфере «анализа сигналов» (на то есть отдельные труды и отрасли науки). Всегда надо помнить, что при анализе речи мы работаем с особым видом сигнала, который воспроизводится определенной биологической системой. С одной стороны, она ограничена своими амплитудно-частотными характеристиками (АЧХ), а с другой стороны, самим языком и стандартным набором звуков, которые могут быть произнесены его носителем (например, при анализе русского языка мы не будем принимать во внимание возможность цоканья и свиста). Исходя из поставленной задачи, можно достаточно точно определить характеристики сигнала речи, и его основные свойства.
Тема урока
С другой стороны, для этого сигнала природой же разработан приемник, близкий к идеальному. Это наш слуховой тракт. Пока что не изобретено и не найдено ни одной другой системы, которая могла бы так же точно и качественно заниматься распознаванием речи. Было бы кощунством пренебречь возможностью поучиться этому у природы. Если познакомится с особенностями слухового тракта поближе, начинаешь понимать, что вейвлеты и преобразование Фурье в такие задачи пришли не с потолка. И системы, обеспечивающие разложение сигнала на частотный спектр, появились гораздо раньше первого наскального рисунка…
Урок по биологии: кто такая улитка, и чем она похожа на гребенку фильтров...
Всего голосов 44: ↑41 и ↓3+38
Комментарии24

Nethernet — онлайн игра которая сама вас найдет

Время на прочтение2 мин
Количество просмотров744
Прочитав интересную статью про метаинтернет, увидел что некоторые «хотелки» уже реализованы в такой онлайн игре как The Nethernet. Это игра которая не требует ходить на рейды в подземелья, заниматься фармом, крафтом и прочими прелестями современных ММО. Раньше она называлась PMOG, что переводится как Пассивная Мультиплеерная Онлайн Игра. Если же она Пассивная то как в неё играть и причем тут метаинтернет? Обо всем по порядку.
Читать дальше →
Всего голосов 59: ↑48 и ↓11+37
Комментарии36

Информация

В рейтинге
2 571-й
Зарегистрирован
Активность

Специализация

Game Developer, Web Developer
Middle
Express
Vue.js
Symfony
Nginx
Docker
MySQL
PostgreSQL
Redis