Pull to refresh
18
0

Контроллеры, автоматизация, программирование

Send message

Охота на Вампуса. Переосмысление классической игры для Алисы

Reading time 20 min
Views 3.6K

Привет! Меня зовут Кирилл Богатов, я дизайнер голосовых интерфейсов в команде TORTU и заядлый геймер. Когда эти две страсти сталкиваются, рождаются необычные концепты для голосовых игр.

Месяц назад я выпустил игру «Охота на Вампуса» для голосового ассистента Алисы. Игра получила много положительных отзывов и побывала в топ-10 развлекательных навыков. В этой статье я поэтапно расскажу о процессе её создания: от переосмысления идей первоисточника — до технической реализации.

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 3

Изучение Spring Framework 100% через практику. Активные туториалы и язык разметки KML. Проект KciTasks (beta)

Reading time 15 min
Views 102K


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

В результате, мы получаем целенаправленное обучение, но БЕЗ ступоров, проблем непонимания вида «а где это использовать», а также без скучного и пассивного чтения теории. Совсем.

В рамках статьи представлено 5 учебных задачек, которые покрывают Spring Jdbc/Transactions на 50% от необходимых для сертификации знаний. Главная задача статьи — массово протестировать саму идею, а также вместе с вами разработать большое количество уникальных задачек по всем темам.
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 12

Книга «Разработка интерфейсов. Паттерны проектирования. 3-е изд.»

Reading time 11 min
Views 11K
image Привет всем, Хаброжители!

Спроектировать хороший интерфейс приложения не так просто. Все заказчики хотят, чтобы пользовательский опыт (user experience) был гладким, чтобы пользователь быстро и безболезненно получал то, что ему нужно, на любом устройстве и пользуясь любым каналом взаимодействия.

Главная «фишка» книги — паттерны проектирования. Вы научитесь использовать паттерны при разработке интерфейсов мобильных, настольных и веб-приложений. Для каждого паттерна даны наглядные примеры и подробное описание -— от реализации до сценариев использования. Вы сразу перейдете от теории к практике!

Для опытных разработчиков книга станет источником интересных идей, а начинающие найдут ориентиры в мире интерфейсов, позволяющие не сбиться c пути и применять лучшие паттерны.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 4

Тайны кнопок в Android. Часть 1: Основы верстки

Reading time 18 min
Views 233K
Приветствую, уважаемое сообщество.

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

Первая часть предназначена для начинающих разработчиков. Я покажу, как сделать достаточно сложную кнопку исключительно версткой, не применяя Java-кода, ни тем более собственных компонентов. Знание этих приемов верстки пригодится и при работе с другими компонентами Android. По ходу статьи я буду подробно пояснять, что означают те или иные константы, атрибуты, команды и тому подобное. Но я также буду давать ссылки на официальную документацию Google, где вы можете подробно изучить каждую тему. Данная статья обзорная, я не ставлю цели привести здесь всю документацию, переведенную на русский язык. Поэтому я рекомендую изучать официальные источники, в частности те статьи, ссылки на которые я привожу здесь.

Читать дальше →
Total votes 63: ↑49 and ↓14 +35
Comments 23

Разработка шахматной программы

Reading time 10 min
Views 74K
Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 26

Как желание поиграть в шахматы превратилось в написание своего движка. История и реализация

Reading time 15 min
Views 12K
Всем привет! Меня зовут Борис Николаев, сегодня я хотел бы поделиться с вами своими наработками по технической реализации простого шахматного движка на Kotlin.

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



В принципе это две большие темы. Забегая вперед скажу, что при реализации большую часть времени я потратил именно на сам движок, который обеспечивает правила игры, а не на алгоритм игры компьютера.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 19

Коллекционирую вредные советы для С++ программистов

Reading time 2 min
Views 23K

Помогите, у меня лапки
Я пишу статьи, посвященные написанию качественного кода и про поиск ошибок с помощью инструментов статического анализа. Однообразие наскучивает, хочется пошалить. А давайте все вместе напишем статью "100 вредных советов для С++ программиста". Я начну, а вы подхватите.

Читать дальше →
Total votes 58: ↑48 and ↓10 +38
Comments 175

ConstraintLayout 101 и новый редактор компоновок в Android Studio

Reading time 4 min
Views 57K

Данная статья является переводом поста из блога Android-разработчицы из ЮАР Ребекки Фрэнкс riggaroo.co.za, подготовленным Android-отделом компании Лайв Тайпинг. Оригинальная статья доступна здесь.


Недавно мне посчастливилось принять участие в конференции Google I/O, где я познакомилась с ConstraintLayout. Я была так потрясена его возможностями, что не могла дождаться, когда приеду домой и попробую всё сама.

Что же такое ConstraintLayout?
Total votes 11: ↑10 and ↓1 +9
Comments 14

Google Maps clustering

Reading time 7 min
Views 46K
Если вы занимаетесь разработкой приложений, использующих Google Maps, то вполне можете столкнуться с ситуацией, изображенной на картинке слева. И, если вы считаете, что картинка справа выглядит лучше, то вам сюда.

image
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 7

ПШЕ AndroidStudio или как использовать VCS Tools по полной

Reading time 4 min
Views 15K

ПШЕ AndroidStudio или как использовать VCS Tools по полной


- Все хорошо, только перед влитием обязательно засквошь коммиты.
- Заскво...Что?

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


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


Я постараюсь не обращать внимания на банальные вещи: init VCS; new/rename/push branch; rebase/merge onto branch; setup remotes e.t.c. Я постараюсь обратить внимание на те элементы, которые по боязни своего незнания, я долгое время избегал(и жалею).

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

Первый смартфон на Android

Reading time 4 min
Views 6.9K

2007 год вряд ли когда-то перестанет ассоциироваться с огромным количеством неформальных субкультур и бесконечной ностальгией в духе “верните мне мой 2007”. Помимо этих, несомненно, замечательных вещей, 2007 год отметился и другим знаменательным событием — выпуск iPhone. Это не была революция в плане реализованных в нем технологий, однако именно он задал вектор развития мобильных устройств, с которым некоторые компании совладать не смогли. Например, Nokia — один из главных игроков рынка в нулевых; сейчас — скорее мем о самых крепких вещах во вселенной. А есть компании, которые, наоборот, смогли поймать новый тренд. Одна из таких компаний — Google. Эта статья о том, как и с чем Google вышла на рынок мобильных устройств.

Читать далее
Total votes 19: ↑16 and ↓3 +13
Comments 11

Enum-switch антипаттерн

Reading time 6 min
Views 46K
В последнее время мне часто встречается в коде один интересный шаблон. Он заключается в том, что для описания небольшого множества объектов создается enum, а потом в разных местах кода значения из перечисления обрабатываются при помощи оператора switch.

Как выглядит реализация данного шаблона, и чем он опасен? Давайте разберемся.
Читать дальше →
Total votes 40: ↑23 and ↓17 +6
Comments 70

Как стать Oracle Certified Professional Java SE 8 Programmer

Reading time 7 min
Views 93K
В этой статье речь снова пойдет о сертификации. Не так давно я рассказывал о процессе получения сертификата от компании Google для Android разработчиков. Почитать об этом можно вот здесь. В статье я периодически приводил сравнение с процессом получения сертификатов от Oracle. Немного подумав, я решил раскрыть эту тему подробнее, благо сертификат от Oracle я получил полгода назад и еще не все забыл. Естественно, на хабре уже не раз описывали этот процесс. Например, достаточно подробные описания можно найти тут и тут. Однако, указанные статьи были написаны несколько лет назад, и затрагивают Java SE 7. Я же постараюсь сосредоточиться на особенностях экзамена по Java SE 8 и в принципе обновить информацию по процессу получения сертификата. Тех, кому все еще интерсено, прошу под кат.
Поехали
Total votes 19: ↑18 and ↓1 +17
Comments 9

Создание World of Tanks Blitz на базе собственного движка DAVA

Reading time 12 min
Views 61K
image

Пролог


Эта история началась более трех лет назад. Наша небольшая компания DAVA стала частью Wargaming, и мы начали обдумывать, какие проекты делать дальше. Чтобы напомнить, каким был мобайл три года назад, скажу, что тогда не было ни Clash Of Clans, ни Puzzle & Dragons, ни многих очень известных сегодня проектов. Mid-core тогда только-только начинался. Рынок был в разы меньше сегодняшнего.

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

Тогда в разработке у нас находилось несколько игр. Одна из них носила рабочее название «Sniper». Основной геймплей-идеей была стрельба в снайперском режиме из стоящего в обороне танка, по другим танкам, которыми управлял AI и которые могли атаковать в ответ.

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

С этого все и началось!

Когда мы начинали разработку “Снайпера”, то рассматривали технологии, которые тогда были доступны для мобильных платформ. На тот момент Unity был еще на достаточно ранней стадии своего развития: по сути, необходимых нам технологий еще не было.

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

Также мы понимали, что на C# мы не сможем выжать максимум из устройств, под которые мы разрабатываем, и всегда будем ограничены.
Unreal Engine 3 тоже не подходил по ряду похожих причин.

В итоге, мы решили дорабатывать свой движок!
Читать дальше →
Total votes 55: ↑51 and ↓4 +47
Comments 27

Blitz.Engine: Ассетная система

Reading time 9 min
Views 5.2K


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

Фактически ассетная система — это большая часть игрового движка, которая может стать верным помощником для разработчиков игры или же превратить их жизни в кромешный ад. Логичным, с моей точки зрения, решением было сконцентрировать этот «ад» в одном месте, бережно оберегая от него других разработчиков команды. О том, что у нас получилось, мы и расскажем в этом цикле статей — поехали!
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 8

Используем Onion Omega2 для создания устройств с Linux и Wi-Fi

Reading time 9 min
Views 47K
В последнее время передо мной часто встают задачи сделать то или иное DIY устройство с Wi-Fi. Я рассматривал разные варианты одноплатных компьютеров и микроконтроллеров, на основе которых это лучше делать, и в итоге моим фаворитом стала Onion Omega2.



Сейчас я расскажу, почему она мне так нравится, и покажу на примере, как ей пользоваться. Как обычно, это будет и в виде традиционной текстовой статьи, и посредством видео.
Total votes 54: ↑54 and ↓0 +54
Comments 45

Малиновый киноцентр или как сделать неубиваемый смарт-ТВ

Reading time 6 min
Views 56K

Самая полная инструкция по созданию из Raspberry Pi домашнего киноцентра с минимальными затратами и подробной настройкой приложений.

Знаю, что скажут 90% читателей: "Зачем тебе магнитофон? Смарт-ТВ купи и счастье". Я отвечу. Проблема в том, что ещё в 90-ых был куплен шикарный телевизор с 5.1 звуком и Full-HD монитором, правда не стандартного разрешения (не 4:3 и не 16:9). Менять телевизор и попадать минимум на 40 тысяч из-за дивидюшника за 3 тысячи - как-то не разумно. В планах сделать экран с проектором и звуком, но вот покупать смарт-ТВ, который не поковыряешь - для меня слишком больно. Купил Sony - мучайся с их смартом и так с любой фирмой.

В моём распоряжении был старый комп-башня и куча старых деталей, который валялись по квартире и офису. Тестил всё на этом железе в разных конфигурациях: от сборки с интегрированной видюхой от интел с 1 ГБ оперативы и пентиумом на борту, до GTX 660 с 8 ГБ оперативы и i5 во главе. Разница есть, но только в загрузке файлов - то есть не критичная. Картинка в FullHD выдаётся ровно без крашей всю дорогу. Имея задумку повесить экран с проектором, делать громоздкую станцию - не вариант.

Читать статью
Total votes 29: ↑25 and ↓4 +21
Comments 77

Более мощный конкурент Raspberry Pi 3 стоит всего $10

Reading time 2 min
Views 88K

Одноплатных компьютеров, хороших и разных, становится все больше. Недавно мы писали о сетевой альтернативе Raspberry Pi, а сейчас появился еще более интересный вариант. Речь пойдет об Iconikal Rockchip 3328.

Он более современный, чем Raspberry Pi 3, с ним поставляется сразу несколько аксессуаров, а цена этого одноплатника почти в четыре раза ниже. Девайс уже поступил в продажу на Amazon, правда, там его очень быстро раскупили.
Читать дальше →
Total votes 71: ↑62 and ↓9 +53
Comments 107

Домашняя автоматика с поддержкой промышленных языков программирования, или BluePill x405

Reading time 9 min
Views 9.9K

Начало обзора


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

Домашняя автоматика — области применения


Дом, милый дом… Так ли тебе нужен контроллер? Ответ прост — всё зависит от того, что в таком доме имеется. Конечно, если у вас просто квартира, и автоматика заключается в управлении домашним медиацентром и кондиционерами летом — всё, что написано далее, может быть совсем неинтересным. Но если ваше хобби заключается не только в продавливании дивана( что уж тут таить, я сам иногда в этом был замечен), то статья может оказаться весьма полезной.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 33

Information

Rating
Does not participate
Location
Запорожье, Запорожская обл., Украина
Date of birth
Registered
Activity