Как стать автором
Обновить
1
0
Артём @DOOMer

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

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

Как GPU-вычисления буквально спасли меня на работе. Пример на Python

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

Сегодня мы затрагиваем актуальнейшую тему — Python для работы с GPU. Автор рассматривает пример, тривиальный в своей монструозности, и демонстрирует решение, сопровождая его обширными листингами. Приятного чтения!


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

Телеграм-каналы о разработке игр: часть 2

Время на прочтение2 мин
Количество просмотров13K
Привет! Я инди-разработчик и автор канала о разработке игр. Год назад я уже делал похожую подборку, но с тех пор набралось много не менее интересных геймдев-блогов.

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

60+ игр для гиков

Время на прочтение35 мин
Количество просмотров53K
Приветствую всех брутальных Хабрачан и чувственных Хабрачаночек!

Благодаря вашей поддержке я смог написать статьи про сериалы в мире IT. Вместе мы прошли через многое. В последней статье я попросил вас рассказать своё мнение о том, стоит ли мне писать статью про гиковские игры и вы снова поддержали меня. Спасибо за это!

Что же, как я и обещал — подборка 60+ игр для гиков перед вами. Сразу хочу оговорить один момент. Все мы гики. У кого-то есть любимые игры, которые могли сюда не попасть. Напишите о них в комментариях. Все ваши комментарии очень ценны и добавляют интереса в наш диалог. Часть из игр моей подборки непосредственно про IT и вокруг нас с вами, часть — не про IT, но гику эти игры наверняка понравятся. Часть игр чему-то учат, часть — просто веселят и развлекают.

Так как подборка очень большая, я не буду детально описывать каждую игру, но расскажу интересные особенности про все. Сортировал игры я не по значимости, а по алфавиту, чтобы было проще и читать, и искать.

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

Что же. Давайте не будем тянуть время и поговорим о подобранных мною для вас играх!


Почему я не использую SharedViewModel для фрагментов?

Время на прочтение3 мин
Количество просмотров12K
Хабр, привет!

Задача организации взаимодействия между фрагментами встречается очень часто. На первый взгляд, ShareViewModel отлично подходит для этого. Мы создаем ViewModel с owner = наша activity, в которой отображаются наши фрагменты, и получаем эту ViewModel внутри каждого фрагмента. Т.к. владелец ViewModel — активити, то фрагменты получают один и тот же экземпляр ViewModel, что и позволяет им обмениваться данными, вызывать методы и т.д. Вот ссылка из документации.

На рисунке ниже представлена схема взаимодействия 3-х фрагментов.

image

Т.е. что мы делаем: в каждом фрагменте мы достаем SharedViewModel тех фрагментов, с которыми нам нужно взаимодействовать…

И это не самое лучшее решение, на мой взгляд. Потому что:
Читать дальше →

7 бесплатных курсов для разработчиков от Microsoft

Время на прочтение5 мин
Количество просмотров82K
Привет, Хабр! Сегодня мы начинаем серию статей, в которую войдет 5 подборок бесплатных обучающих курсов от компании Microsoft. В этой статье у нас самые крутые курсы для разработчиков, которые сильнее всего нравятся программистам.

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 6/7 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Новая серия статей


Следующая серия статей, начало 2020 года


Эта серия статей, 2019 год


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

Как использовать Яндекс.Вордстат для контекстной рекламы [подробный гайд]

Время на прочтение10 мин
Количество просмотров84K
Как использовать Яндекс.Вордстат для контекстной рекламы [подробный гайд]

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


Из статьи вы узнаете:


  • зачем нужен Яндекс.Вордстат и для каких задач он подходит;
  • как использовать Вордстат для оценки спроса и сезонности;
  • как ускорить и упростить подбор ключей в Вордстате;
  • как собрать частотность по списку ключей любого объема.
Читать дальше

Терраформинг: как создавался Doom 64

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

Глаза Джона Ромеро следили за инженером, раскладывавшим свой груз на бильярдном столе. Посетитель прибыл в id Software из Sega, а на стол он положил материнскую плату, пока находящуюся на стадии прототипа. После завершения проекта она должна была стать основой 32X — дополнительного оборудования Sega, которое превратит консоль Genesis из 16-битного динозавра в 32-битного гиганта.

Ромеро и остальные сотрудники id Software собрались вокруг, а инженер установил на сукно монитор, подключил к нему прототип и включил питание. Экран заполнился кодом. Часть его Ромеро узнал. Узнал его и Джон Кармак, вместе с Ромеро основавший id. Это был код того, что должно стать портом Doom. На тот момент работа ещё не завершилась. Чтобы перенести код на свою консоль, Sega нужна была помощь в модифицировании исходников Doom так, чтобы он мог запускаться на 32X.

«Кармак выудил из него максимально подробную информацию о процессоре » — рассказывает Ромеро — «А затем дал инженеру рекомендации, как ускорить работу блиттера. Вот так Sega удалось создать версию для 32X». (Блиттер — это устройство для изменения и быстрого перемещения данных в памяти.)

Что нужно для создания хорошего подземелья в RPG?

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

Для начала нужно ответить на вопрос что же такое подземелье?

Не буду углубляться в эту тему, а просто использую определение из третьего издания руководства мастера подземелий (ДМ) D&D:

Понятие «подземелье» очень расплывчато. Подземелье обычно находится под землёй, но могут существовать и надземные «подземелья». Некоторые ДМ называют подземельями любые места, где происходит приключение. Здесь мы будем называть подземельем замкнутое, чётко заданное пространство, состоящее из соединённых определённым образом мест встреч с врагами.

Такое определение мне нравится, оно очень хорошо подходит как для настольных, так и для компьютерных RPG (которые я в дальнейшем буду называть CRPG). Но что же такое хорошее подземелье?

Это может показаться очевидным, но хорошее подземелье в CRPG должно соответствовать игре. Например, мне нравятся огромные переплетённые спагетти-подземелья из Daggerfall:


Они соответствуют игре, потому что в Daggerfall игрок движется быстро, есть такие способы перемещения, как полёты, взбирание, плавание и телепортация (слава богу, что есть телепорты), а встречи с врагами редки и скоро заканчиваются. Благодаря камере с видом от первого лица движение кажется очень удобным, в классическом стиле Doom.

Если бы такой дизайн использовали в Final Fantasy IX с её медленным движением, медленными пошаговыми боями, постоянными случайными врагами и фиксированной камерой, то это было бы невыносимо. То же самое относится к играм, где движение привязано к сетке карты, например, к Legend of Grimrock, или где перемещается большая группа персонажей, например, к Baldur’s Gate.
Читать дальше →

MVVM и выбор элементов в адаптере — LiveData

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

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


Спустя несколько месяцев, когда я достаточно подумал, попрокрастинировал и поработал, у меня уже получилось решение, более подходящее именно для Android, так как основано на LiveData. Прошу всех интересующихся ознакомиться.

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

Что посмотреть на карантине? Подборка материалов от Технострима (часть 4)

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


Продолжаем нашу подборку интересных материалов (первая часть, вторая часть, третья часть). На этот раз много материалов про Kotlin, а также анонс нового эфира ток-шоу для айтишников «Oh, my code» с Павлом Dzirtik Щербининым, который состоится сегодня вечером.

Основные linux-команды для новичка

Время на прочтение14 мин
Количество просмотров914K
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!

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

Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Читать дальше →

Python: Работа с базой данных, часть 1/2: Используем DB-API

Время на прочтение6 мин
Количество просмотров532K
часть 1/2: Используем DB-API часть 2/2: Используем ORM
Python DB-API – это не конкретная библиотека, а набор правил, которым подчиняются отдельные модули, реализующие работу с конкретными базами данных. Отдельные нюансы реализации для разных баз могут отличаться, но общие принципы позволяют использовать один и тот же подход при работе с разными базами данных.

В статье рассмотрены основные методы DB-API, позволяющие полноценно работать с базой данных. Полный список можете найти по ссылкам в конец статьи.

Требуемый уровень подготовки: базовое понимание синтаксиса SQL и Python.
Читать дальше →

Рендеринг в 3D-играх: введение

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

Вы играете в свежую Call of Mario: Deathduty Battleyard на своём совершенном игровом ПК. Смотрите на прекрасный сверширокий 4K-монитор, любуясь великолепными пейзажами и замысловатыми деталями. Вас когда-нибудь интересовало, как графика попадает на экран? Задумывались, как игра заставляет компьютер всё это показать вам?

Добро пожаловать в наш тур по рендерингу в 3D-играх: путешествие для начинающих, из которого вы узнаете, как создаётся один базовый кадр на экране.
Читать дальше →

41 вопрос о работе со строками в Python

Время на прочтение9 мин
Количество просмотров165K
Я начал вести список наиболее часто используемых функций, решая алгоритмические задачи на LeetCode и HackerRank.

Быть хорошим программистом — это не значит помнить все встроенные функции некоего языка. Но это не означает и того, что их запоминание — бесполезное дело. Особенно — если речь идёт о подготовке к собеседованию.

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


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

Что посмотреть на карантине? Подборка материалов от Технострима (часть 3)

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


Продолжаем нашу подборку интересных материалов (первая часть, вторая часть). На этот раз один образовательный курс Техносферы, выступление про модульное тестирование и одна передача из ток-шоу для айтишников «Oh, my code».

Работа с базой данных во Flask: от джуна джуну

Время на прочтение7 мин
Количество просмотров25K
Написать данную статью меня побудило желание помочь таким же новичкам в Python в целом и в работе с Flask в частности, как я сам. Во время работы над задачей целостного и понятного объяснения в том стиле, как любим мы, новички, не нашел. Приходилось информацию искать по крупицам. Каких-то картинок не будет. Сугубо техническая статья. Опытным людям буду благодарен за комментарии и за подсказки по улучшению кода.
Читать дальше →

Qbs: Шаблон настольного приложения

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

Давным давно, когда Qbs только вышла, я начинал писать эту статью, но так её и не закончил… Кажется, пришло время ее дописать. С тех пор многое изменилось, у Qbs наконец-то появилась документация, но примеров (к сожалению) в ней по-прежнему не так много. В этой статье я расскажу как написать шаблон (почти) полноценного десктопного приложения с использованием Qt.Widgets. По-хорошему, было бы неплохо сделать это на чистом C++, но я слишком ленив, чтобы сделать тестовый UI с помощью нативного АПИ под 3 платформы. Для примера я написал простое приложение ("рыбу"), состоящее из основного приложения, библиотеки и плагина, которое мы и будем разбирать


Кого заинтересовало, добро пожаловать под кат.

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

PEP 257 на русском. (Соглашение о Docstrings)

Время на прочтение8 мин
Количество просмотров41K
Привет, Хабр. Бывают моменты, когда тебе хочется максимально погрузиться в язык и понять все его тонкости. В случае Python один из лучших способов это сделать — читать на официальном сайте документацию и PEP-ы. В своё время я этого не делал, поскольку не мог понять многих «технических» моментов, а вариантов русского перевода не было. Сейчас же я решил сам перевести PEP-257, где рассказывается о правильном документировании кода, ведь наверняка это поможет новичкам лучше понять истинный «пайтоновский» подход к написанию кода. Я переводил примеры кода на русский язык, но только для того, чтобы лучше донести смысл. В реальном программировании старайтесь писать документационные строки на английском. Также говорю сразу, что как синоним термина «docstring» я использовал слова: «документация» и «документационные строки». Что же, перейдём к самому переводу.
Читать дальше →

Мои любимые вопросы о CSS с ответами

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

Я проходил множество интервью, и когда дело доходило до вопросов о CSS, то они сводились к: "Перечислите все известные способы центрирования элемента". После 5 ответов, откровенно, это надоело. Поэтому я хочу поделиться своими любимыми вопросами о CSS, которые я задаю на интервью.

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

Внешние накопители данных: от времен IBM 1311 до наших дней. Часть 2

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

Внешние накопители данных: от времен IBM 1311 до наших дней. Часть 1

Из-за дороговизны флэш-памяти во второй половине 90-х на рынке цифровой фотографии установилось весьма странное равновесие: в то время, как профессионалы наслаждались всеми преимуществами ультрасовременных на тот момент карточек CompactFlash, любители по старинке довольствовались обычными 3.5-дюймовыми дискетами. И так продолжалось до тех пор, пока в дело не вмешалась IBM.
Читать дальше →

Информация

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