Как стать автором
Обновить
18
0

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

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

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

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

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

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

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

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

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


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

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

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

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

Время на прочтение11 мин
Количество просмотров11K
image Привет всем, Хаброжители!

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

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

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

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

Время на прочтение18 мин
Количество просмотров234K
Приветствую, уважаемое сообщество.

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

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

Читать дальше →
Всего голосов 63: ↑49 и ↓14+35
Комментарии23

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

Время на прочтение10 мин
Количество просмотров75K
Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии26

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

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

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



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

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

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

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

Читать дальше →
Всего голосов 58: ↑48 и ↓10+38
Комментарии175

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

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

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


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

Что же такое ConstraintLayout?
Всего голосов 11: ↑10 и ↓1+9
Комментарии14

Google Maps clustering

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

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

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

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

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


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

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


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


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

Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии30

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

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

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

Читать далее
Всего голосов 19: ↑16 и ↓3+13
Комментарии11

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

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

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

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

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

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

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

Пролог


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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



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

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

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

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

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

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

Читать статью
Всего голосов 29: ↑25 и ↓4+21
Комментарии77

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

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

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

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

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

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

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


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

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


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

Информация

В рейтинге
Не участвует
Откуда
Запорожье, Запорожская обл., Украина
Дата рождения
Зарегистрирован
Активность