Pull to refresh
3
0
Дмитрий Колодько @prowwid

Lead Software Developer

Send message

Мини-империи

Reading time3 min
Views16K
Как выглядит стратегическая игра, если мы будем смотреть только на мини-карту? Недавно я решил изучить эту идею, вернувшись к классической Age of Empires II.

Начало исследования


Я начал с изучения матча с тремя ИИ-игроками на карте средних размеров. Вот исходное состояние:


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

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

Total votes 46: ↑45 and ↓1+44
Comments9

Как мы пилили IoT-платежи на хакатоне в Гонконге

Reading time15 min
Views7.1K


10 июня шёл уже третий день нашей акклиматизации в Гонконге. А последние 26 часов мы провели почти без сна, разрабатывая прототип проекта под рабочим названием SensorPay на первом этапе хакатона EOS Global с общим призовым фондом полтора миллиона долларов. Близился момент демонстрации проекта перед судьями.


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

Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments42

Шина PCIe: только ли физические ограничения влияют на скорость передачи?

Reading time5 min
Views49K
Начну издалека. Прошлой зимой довелось мне делать USB-устройство с ядром, размещаемым в ПЛИС. Само собой, очень мне хотелось проверить реальную пропускную способность этой шины. Ведь в контроллере — там слишком много всего наверчено. Всегда можно сказать, что вот тут внесена задержка, или вон там. В случае же с ПЛИС — я вижу блок, прокачивающий данные, вот он сказал мне, что в нём данные есть. А вот я выставил, что всё обработано, и я готов принимать новую порцию (при этом, он уже принимает данные во второй буфер этой же конечной точки). Отлично, ставим готовность с первого же такта и смотрим, что получается, когда USB может «молотить» без остановки.


Читать дальше →
Total votes 87: ↑86 and ↓1+85
Comments82

DocumentFragment: что это такое и как с ним (не) бороться

Reading time4 min
Views32K
Дисклеймер
Похоже, у меня начинается новая серия статей — немного скучная и сугубо утилитарная. В них будут содержаться разъяснения моментов, которые часто вызывают трудности у моих студентов. Если вы матёрый веб-девелопер, скорее всего, вам будет неинтересно. Если вы ждёте извращений в силе «Пятничного JS», их тут не будет, увы.


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

image
Я преисполнен любопытства и желаю читать дальше
Total votes 22: ↑22 and ↓0+22
Comments23

Жизнь спустя год после внедрения роботов: пока равноправия не просят

Reading time7 min
Views7.5K
Восстание роботов. Кажется, что это — что-то невероятное. А даже если и вероятное, то произойдет нескоро. Однако стоит задуматься — штат роботов у наших партнеров за год вырос на 22 машины. И они явно не собираются останавливаться. А вдруг очередная модернизация пойдет не по плану и робот откажется от неё. Или скажет, что ему надоело работать в бухгалтерии. Подробнее под катом!


Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments6

AR-фреймворки для iOS: какой выбрать?

Reading time5 min
Views5.6K
image
Многие разработчики уже давно используют AR в своих приложениях. Хорошее подспорье для этого — сторонние решения вроде OpenCV или Wikitude. С релизом iOS 11 программистам стал доступен системный фреймворк ARKit. Давайте посмотрим, насколько эти библиотеки хороши и какую из них стоит использовать для вашего следующего проекта с дополненной реальностью.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments8

Классификация больших объемов данных на Apache Spark с использованием произвольных моделей машинного обучения

Reading time18 min
Views13K

Часть 1: Постановка задачи


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

  • Как представить модель машинного обучения в виде сервиса (Model as a Service)?
  • Как физически выполняются задачи распределенной обработки больших объемов данных при помощи Apache Spark?
  • Какие проблемы возникают при взаимодействии Apache Spark с внешними сервисами?
  • Как при помощи библиотек akka-streams и akka-http, а также подхода Reactive Streams можно организовать эффективное взаимодействие Apache Spark с внешними сервисами?

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

Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments9

Тёмная сторона agile

Reading time7 min
Views16K
Внимательный читатель листает ленту и задает вопрос: «Что, опять текст про agile?». Ага.

Эта статья — о процессах, технических аспектах и немного о том, как agile живет и внедряется в Яндекс.Деньгах. Если вы прошли хотя бы половину пути до настоящего agile, какие-то вещи могут показаться вам очевидными, и это нормально.

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

А еще внимательный читатель спросит: «Почему „Темная сторона"? Тут что, про Дарта Вейдера?» Увы, нет, речь пойдет о темной стороне Луны, которая была неизвестна человечеству, пока туда не прилетел аппарат, чтобы сфотографировать и показать ее всем.

Когда внедряете agile, вы составляете проект освоения Луны, не зная,
что на другой стороне


Все начинается с попытки внедрить новые процессы разработки.
Total votes 30: ↑26 and ↓4+22
Comments10

Автоматизация дата-центров или «восстание машин»

Reading time6 min
Views5.3K


На фоне кажущегося неизбежным тотального перехода к технологиям искусственного интеллекта (ИИ) и автоматизации, Лео Крейг, генеральный директор Riello UPS, задается вопросом: является ли восстание машин неизбежным и, если это так, как это отразится на работе дата-центров в будущем?

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments0

Мониторинг JavaScript-ошибок с помощью window.onerror

Reading time7 min
Views22K
Материал, перевод которого мы сегодня публикуем, посвящён обработке JS-ошибок с помощью window.onerror. Это — особое событие браузера, которое вызывается при появлении неперехваченных ошибок. Здесь мы поговорим о том, как перехватывать ошибки с помощью обработчика события onerror, и о том, как отправлять сведения о них на сервер разработчика веб-сайта. Этот обработчик можно использовать в качестве основы собственной системы сбора и анализа информации об ошибках. Кроме того, он является одним из важнейших механизмов, применяемых в библиотеках, ориентированных на работу с ошибками, таких, как raven-js.

image
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments2

Кто кого учит? Разница между глаголами teach, study и learn

Reading time4 min
Views20K
«Да ладно, teach — это от teacher, а study — это от student!» — говорят студенты, после чего добавляют: «By the way, I studied 2 new words today!» и… ошибаются. Может, с глаголом teach и правда все понятно. Но в чем же разница между study и learn?

image
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments6

Шесть экспериментов от Skyscanner, которые принесли рост мобильному приложению

Reading time6 min
Views4.4K
Главный growth менеджер в Skyscanner Катерина Тониоло (Caterina Toniolo) рассказала на Epic Growth Conference о том, как команда проверяла гипотезы и проводила эксперименты, чтобы увеличить рост мобильного приложения.


Смотрите видео и читайте заметки под катом.
Total votes 21: ↑21 and ↓0+21
Comments1

Рассчитываем вероятности для статьи «Нечестная игра, или как нас обманывают организаторы розыгрышей»

Reading time5 min
Views18K
Статья с разбором игры известной торговой сети вызвала у нас в Cloud4Y живой интерес. Вот небольшие отрывки, чтобы ввести вас в курс дела:
Однажды, солнечным весенним утром, почитывая городской форум, я наткнулся на ссылку с простенькой игрой от известной торговой сети. Игра (акция), посвящённая чемпионату мира по футболу, представляла собой незамысловатое поле три на три, заполненное футбольными мячами. Кликая по мячу, мы открывали картинку с тем или иным товаром. При открытии трёх одинаковых картинок участнику гарантировалось бесплатное получение данного товара в одном из магазинов сети. Также под одним из мячей имелось изображение красной карточки, открытие которой означало конец игры.

Автор статьи принялся расследовать причины своего проигрыша и по результатам расчетов выяснил следующее:
Быстрый набросок формул на салфетке, и выяснилось, что вероятность выигрыша — 1/4. Для 5 полей пришлось повозиться, но расчётная вероятность получилась также 25%.
...
Запустив скрипт, я получил неожиданный результат — 25% выигрышей. Поиграв с количеством выигрышных элементов и общим количеством полей, я выяснил, что вероятность выигрыша в подобной игре не зависит от количества полей и равна единице, поделенной на количество выигрышных элементов, увеличенных на единицу.
Нас заинтересовала правильность такого расчета и, заменив салфетку на Excel, мы взялись за дело в поисках математической истины. Читателей, увлекающихся теорией вероятности, приглашаем под кат, дабы проверить правильность наших вычислений.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments20

Телеграф, Western Union и ядерная война. Как США незаметно для всех создали систему оповещения о ядерной угрозе

Reading time7 min
Views21K


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

Под катом интереснейший рассказ о том, как американские технари и военные построили передовую систему оповещения о ядерной угрозе, которая стала прообразом современной мировой паутины.
Читать дальше →
Total votes 38: ↑35 and ↓3+32
Comments31

Как готовить mysql binlog с go

Reading time6 min
Views8.5K


Меня зовут Артём, я работаю в Rambler Group в проектe «Поток» на позиции Go lead developer.
Мы потратили достаточно много времени на укрощение mysql binlog. В этой статье рассказ о том, как быстро и с минимальным количеством подводных камней внедрить механизм работы с бинлогом на Go.
Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments3

Климатическая система в квартире своими руками — часть 2

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

Сейчас, два года спустя, я решил написать об опыте использования системы. Вкратце, всё работает, но потребовало некоторого доведения до ума, а именно:
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments76

Как устроен поиск

Reading time15 min
Views38K
Привет, юзернейм! Каждый день мы сталкиваемся с поиском различных данных. Почти на каждом веб-сайте с большим количеством информации сейчас есть поиск. Поиск есть в домашних компьютерах, в мобильных телефонах, в различного рода программном обеспечении. Конечно, если спросить любого разработчика про поиск с точки зрения технологий, на ум сразу придет elasticsearch, lucene или sphinx. Сегодня я хочу заглянуть с тобой «под капот» полнотекстового поиска и разобраться в первом приближении, как же он работает, на примере hh.ru.

image
Читать дальше →
Total votes 56: ↑54 and ↓2+52
Comments11

Google Cloud Storage c PHP: сохранение файлов с публичным доступом

Reading time7 min
Views12K
В связи с тем, что предыдущий сервис с помощью которого я хранил изображения накрылся медным тазом (скорее всего из-за того, что был не прибыльный), мне пришлось искать другие варианты хранения изображений. Сервера я использую бюджетные и не хотелось бы мне платить приличную цену за дополнительные 10 ГБ дисковой памяти. Изучая рынок я наткнулся на Google Cloud Storage (GCS) и решил, что данный продукт мне подойдет (ну как минимум можно протестировать). В рунете (да и не только в нем) мало уделяется внимания для настройки GCS с использованием PHP, поэтому я решил внести свою лепту в это направление.

В данной статье будет рассмотрено 2 варианта настройки GCS для загрузки файлов (в примере будет реализована загрузка изображения) с помощью php-клиента и с помощью существующего sdk (утилита gsutil) используя shell. Итак, поехали!
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments5

Два типа расширений PHP. Zend extension VS PHP module

Reading time3 min
Views7.8K

image


Какие расширения вообще бывают


PHP module – оно же обычное расширение PHP
К этому типу относится подавляющее число расширений в PHP. Все то, что подключается в php.ini с помощью инструкции extension=some_library.so — это они и есть.


Zend extension
Расширений такого типа крайне мало, однако они ничуть не менее востребованы.


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

Читать дальше →
Total votes 19: ↑18 and ↓1+17
Comments0

Спросите Итана: если тёмная материя повсюду, почему мы не нашли её в Солнечной системе?

Reading time7 min
Views29K


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

Согласно огромному объёму свидетельств, большая часть Вселенной состоит из некоей массы загадочного типа, которую мы ни разу не измерили напрямую. Протоны, нейтроны и электроны – и вообще вся материя, состоящая из частиц, входящих в Стандартную Модель – из которой состоят планеты, звёзды и галактики, обнаруживаемые нами по всей Вселенной, составляет лишь 15% её общей массы. Остальное состоит из чего-то совершенно другого: холодной тёмной материи. Но если тёмная материя есть повсюду и в огромных количествах, почему мы не увидели в Солнечной системе? Именно такой вопрос задаёт наш читатель:
Все свидетельства наличия тёмной материи и тёмной энергии относятся к далёкому космосу. Довольно подозрительно, что мы не видим никаких свидетельств их существования здесь, в нашей Солнечной системе. Никто никогда не сообщал ни о каких аномалиях в орбитах планет. Однако их очень точно измерили. Если Вселенная на 95% тёмная, такие эффекты можно было бы измерить локально.
Так ли это? Это была одна из первых мыслей, пришедших мне в голову, когда я впервые узнал о тёмной материи (ТМ) 17 лет назад. Давайте разбираться и выяснять истину.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments64

Information

Rating
Does not participate
Location
Краматорск, Донецкая обл., Украина
Date of birth
Registered
Activity