Search
Write a publication
Pull to refresh
0
0

Backend developer

Send message

Создание сеток шестиугольников

Reading time25 min
Views103K
image

Сетки из шестиугольников (гексагональные сетки) используются в некоторых играх, но они не так просты и распространены, как сетки прямоугольников. Я коллекционирую ресурсы о сетках шестиугольников уже почти 20 лет, и написал это руководство по самым элегантным подходам, реализуемым в простейшем коде. В статье часто используются руководства Чарльза Фу (Charles Fu) и Кларка Вербрюгге (Clark Verbrugge). Я опишу различные способы создания сеток шестиугольников, их взаимосвязь, а также самые общие алгоритмы. Многие части этой статьи интерактивны: выбор типа сетки изменяет соответствующие схемы, код и тексты. (Прим. пер.: это относится только к оригиналу, советую его изучить. В переводе вся информация оригинала сохранена, но без интерактивности.).
Читать дальше →

Как создавать напряжение в хоррор-играх. Часть вторая

Reading time6 min
Views16K
Саспенс и напряжение создаются в играх с большим трудом. Чтобы напугать игрока и всё время держать его в страхе, вам нужно тяжело работать, всесторонне воздействуя на его чувства. Лучшие хоррор-игры выводят игроков из равновесия основными игровыми механиками и затем фиксируют их внимание на страшном повествовании. Вам нужно продумать каждую механику, каждое художественное решение, чтобы пользователь оставался сосредоточенным на игре и в то же время ощущал собственную уязвимость.


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

Медь топора древнего человека Эци попала в Альпы из центра Италии

Reading time3 min
Views21K


В 1991 году в Эцтальских Альпах (Тироль, Австрия) была найдена вмерзшая в лед мумия человека эпохи халколита. Останки нашли на высоте 3200 метров. Антропологам удалось выяснить, что возраст мумии составляет около 5300 лет. На текущий момент — это самая старая мумия человека, обнаруженная в Европе.

В 2011 году генетикам удалось секвенировать полный геном Эци. После этого ученые провели сравнительный анализ ДНК примерно 4 тысяч человек из Тироля, региона в Австрии. Оказалось, что 19 человек — дальние родственники Эци. Рядом с Эци лежал отлично сохранившийся медный топор. Сейчас специалисты выяснили, что медь этого топора была добыта в одной из из центральных областей Италии, а не в местных месторождениях.

Определены лучшие оптические иллюзии 2016 года

Reading time3 min
Views60K

Некоторые можно сделать самому



Автокинетическая иллюзия (феномен иллюзорного движения, наблюдаемый в ситуации длительной фиксации взгляда на неподвижном объекте), финалист конкурса 2014 года и обладатель максимального рейтинга за всё время проведения конкурса

Организаторы конкурса The Best Illusion of the Year объявили победителей 2016 года.

Этот конкурс с 2005 года проводит Общество неврологических исследований (Neural Correlate Society), привлекая лучших специалистов по созданию иллюзий, где видимые и субъективно воспринимаемые мозгом объекты не совпадают с объективной реальностью.
Читать дальше →

Советы и секреты № 1

Reading time4 min
Views34K

Удаление своего досье в Google; прямые ссылки в поиске; новый user.js для Firefox; просмотр программ, которые обращаются к конкретному файлу под Windows; запись анимированного GIF с экрана


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

Как отредактировать/удалить историю своих действий в Сети, которые собирает Google?
Неделю назад Google представила новый инструмент MyActivity («Мои действия»). Здесь представлена разнообразная информация, в том числе:

  • история поиска в Google, Google Play, на картах Google Maps и прочих сайтах Google;
  • список просмотренных видео на YouTube;
  • список действий в браузере Chrome, в том числе список поисковых запросов в других поисковых системах через омнибар;
  • информация с мобильного телефона Android (Google сохраняет ваши контакты, календари, информацию о приложениях, музыке, сведения об устройстве).
Читать дальше →

Быстрое клонирование объектов в JavaScript

Reading time5 min
Views45K
cloneКлонирование объектов в JavaScript довольно частая операция. К сожалению, JS не предоставляет быстрых нативных методов для решения этой задачи.

К примеру, популярная Node.JS ORM Sequelize, которую мы используем на backend-е нашего проекта, значительно теряет в производительности на предвыборке большого (1000+) количества строк, только на одном клонировании. Если вместе с этим, к примеру, в бизнес-логике использовать метод clone известной библиотеки lodash — производительность падает в десятки раз.

Но, как оказалось, не всё так плохо и современные JS-движки, такие как, например, V8 JavaScript Engine, могут успешно справляться с этой задачей, если правильно использовать их архитектурные решения. Желающим узнать как клонировать 1 млн. объектов за 30 мс — добро пожаловать под кат, все остальные могут сразу посмотреть реализацию.
Читать дальше →

Мультиплеер в быстрых играх (части I, II)

Reading time7 min
Views145K


  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)


Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
Читать дальше →

Питерский фотограф сравнил пассажиров метро с их профилями «ВКонтакте»

Reading time1 min
Views88K


21-летний фотограф из Санкт-Петербурга Егор Цветков провёл интересную фотосессию Your Face Is Big Data. Проехав в подземке, он фотографировал пассажиров, а затем с помощью бесплатного сервиса FindFace находил профиль пользователя в социальной сети «ВКонтакте» по его фотографии.

Своим проектом Егор хотел показать «конец анонимности», что в современную эпоху нужно аккуратнее относиться к личным фотографиями и закрывать доступ посторонним к своему профилю.
Читать дальше →

Рекурсивные запросы в PostgreSQL (WITH RECURSIVE)

Reading time3 min
Views205K

Как ни странно, чтобы понять рекурсию, в PostgreSQL не надо понимать рекурсию. Потому что WITH RECURSIVE, который присутствует в посгресе (и в других серьёзных базах) — это скорее вычисление чего-то итерациями до того, как будет выполнено некоторое условие.
Тем не менее это очень полезный функционал базы, который можно использовать, например, чтобы вывести все подкатегории заданной категории, если таблица задана в виде (id, parent_id, ...)
Читать дальше →

Как посчитать всё на свете одним SQL-запросом. Оконные функции PostgreSQL

Reading time5 min
Views606K

Я с удивлением обнаружил, что многие разработчики, даже давно использующие postgresql, не понимают оконные функции, считая их какой-то особой магией для избранных. Ну или в лучшем случае «копипастят» со StackOverflow выражения типа «row_number() OVER ()», не вдаваясь в детали. А ведь оконные функции — полезнейший функционал PostgreSQL.
Попробую по-простому объяснить, как можно их использовать.


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

Полезные трюки PostgreSQL

Reading time3 min
Views203K


В мануале есть всё. Но чтобы его целиком прочитать и осознать, можно потратить годы. Поэтому один из самых эффективных методов обучения новым возможностям Postgres — это посмотреть, как делают коллеги. На конкретных примерах. Эта статья может быть интересна тем, кто хочет глубже использовать возможности postgres или рассматривает переход на эту СУБД.
Читать дальше →

Криптовалюта Ethereum выросла в 13 раз за три месяца

Reading time3 min
Views40K


Казалось бы, ещё недавно мы праздновали, что биткоин достиг паритета с долларом, а вот уже он опустился с $1000 до $420, попутно породив к жизни более 700 клонов, основанных на блокчейне.

Одна из относительно новых криптовалют Ether на платформе Ethereum за три месяца 2016 года прибавила в стоимости примерно 1200% (рост за январь-март с 0,002 BTC до 0,026 BTC), а по рыночной капитализации ($882 млн) вышла на 2-е место после Bitcoin ($6,5 млрд), заметно опередив Ripple ($273 млн) и Litecoin ($148 млн).

Успех Ethereum был предсказуем.
Читать дальше →

Node.js. Паттерны проектирования и разработки

Reading time6 min
Views50K
Здравствуйте, уважаемые читатели.

Нас заинтересовала книга "Node.js Design Patterns", собравшая за год существования очень положительные отзывы, небанальная и содержательная.



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

Поучаствуйте, пожалуйста, в опросе.

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

История о разработке Космосима на Unity

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


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

TOM.js — особая библиотека, для особых случаев

Reading time5 min
Views14K
Приветствую всех.
Не знаю на сколько верно я описал данную библиотеку в заголовке, но рассказать я хочу именно о ней.



Что это?


Библиотека TOM.js даёт возможность облегчить такие задачи как:
  • загрузка/подгрузка скриптов/стилей с зависимостями
  • создание/наследование классов
  • перехват функций в пределах приложения
Читать дальше →

Обстоятельно о подсчёте единичных битов

Reading time16 min
Views100K
Я хотел бы подарить сообществу Хабра статью, в которой стараюсь дать достаточно полное описание подходов к алгоритмам подсчёта единичных битов в переменных размером от 8 до 64 битов. Эти алгоритмы относятся к разделу так называемой «битовой магии» или «битовой алхимии», которая завораживает своей красотой и неочевидностью многих программистов. Я хочу показать, что в основах этой алхимии нет ничего сложного, и вы даже сможете разработать собственные методы подсчёта единичных битов, познакомившись с фундаментальными приёмами, составляющими подобные алгоритмы.

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

43 полезных сервиса для управления проектами. Без эпитетов

Reading time13 min
Views694K
Дано: собственные и аутсорс-проекты, некоторые участники работают удаленно.

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

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

Изначально сервисов было более 100, но постепенно список сокращался, и мы остановили наш выбор на трех, удовлетворяющих вместе наши нужды лучше всего: Jira, Slack и GanttPro. Но, если вдруг эти сервисы не помогут вам в планировании задач и работы с командой, делюсь с вами полным списком:

Процесс поиска очень часто усложняется тем, что все сервисы, как один, пишут «Лучший сервис, помогающий превратить ваши идеи в реальность и реализовать ваши проекты. Сегодня.». Так, а что вы делаете-то? Поэтому в этом списке без лишних эпитетов, только что какой сервис умеет. :)




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

Алгоритм создания списка всех перестановок или размещений

Reading time3 min
Views35K
Сразу оговорюсь, эта статья тематически похожа на опубликованную около года назад автором SemenovVV «Нерекурсивный алгоритм генерации перестановок», но подход тут, на мой взгляд, принципиально иной.

Я столкнулся с необходимостью составления списка всех перестановок из n элементов. Для n = 4 или даже 5, задача решается вручную в считанные минуты, но для 6! = 720 и выше исписывать страницы мне уже было лень – нужна была автоматизация. Я был уверен, что этот «велосипед» уже изобретён многократно и в различных вариациях, но было интересно разобраться самостоятельно – поэтому, намеренно не заглядывая в профильную литературу, я засел за создание алгоритма.
Читать дальше →

Две причины выкинуть клиент вашего облачного хранилища на свалку

Reading time3 min
Views18K

У вас 100% есть Dropbox. Или “Яндекс.Диск”. Или даже “Облако Mail.ru”.
Все они хранят в облаке то, что уже и так есть у вас на компе.


Это хорошо для:


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

Но иногда не нужно иметь на компе копию того, что лежит в облаке. Мне всегда хотелось иметь в облаке дополнительное место, чтобы сваливать туда неактуальное, но которое может понадобиться в будущем. Вот это было бы хранилище так хранилище. Я пробовал это сделать.



Под катом две неудачные попытки и одна супер-удачная.

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

Несколько дельных советов по CSS

Reading time4 min
Views56K

CSS Protips

Это современные решения типичных проблем, коллекция советов, которая поможет вам улучшить ваши профессиональные навыки CSS.

От переводчика

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



Cодержание


  1. Используем псевдо-класс :not для задания рамки навигации
  2. Добавляем межстрочный интервал элементу body
  3. Центрируем по вертикали все что угодно
  4. Правильно разделяем запятыми элементы списков
  5. Отрицательный порядковый номер в nth-child
  6. Используем SVG-логотипы
  7. Аксиоматический CSS
  8. Максимальная высота у CSS-слайдера
  9. Наследуем box-sizing
  10. Одинаковая ширина ячейки таблицы
  11. Динамические внешние отступы при помощи flexbox
  12. Используем селектор атрибутов пустых ссылок
  13. Стили по умолчанию для обычных ссылок
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity