Как стать автором
Обновить
34
0
Dmitry Minsky @DMinsky

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

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

Анатомия Hello World на языке C

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров19K

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Всего голосов 102: ↑117 и ↓-15+132
Комментарии46

«Галоп пикселя — часть шестая» — Анимация персонажей. Бег

Уровень сложностиСредний
Время на прочтение48 мин
Количество просмотров8.8K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)
«Галоп пикселя», часть VI — Анимация персонажей. Бег (линк)

Доброго времени суток, Хабр. Мы продолжаем цикл «Галоп Пикселя». И хотя паузы между главами этой саги достигли практически четырехлетнего перерыва — я рад (надеюсь и вы тоже) продолжить двигаться вперёд. Миля за милей, дорога за дорогой, в этой вечной былине о пиксель-арте. Пространном повествовании о пикселях, их жизни, способе их создания, приёмах и уловках в работе с ними.

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

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


Лопатить пиксели
Всего голосов 92: ↑92 и ↓0+92
Комментарии35

Графика древности: легендарный Mode 7

Уровень сложностиПростой
Время на прочтение22 мин
Количество просмотров8.9K

Технологический переход в индустрии видеоигр, случившийся в середине 1990-х годов — от пиксельной графики игр прошлых лет к полигональной графике игр чуть менее прошлых лет — произошёл не одномоментно. Ему предшествовала эпоха экспериментов, когда разработчики придумывали разнообразные способы убедительной имитации трёхмерного изображения в рамках скромных вычислительных ресурсов. Изометрический движок Filmation и силуэтная графика в Tau Ceti на ZX Spectrum, технология масштабирования спрайтов Super Scaler компании Sega, рейкастинг в Wolfenstein 3D, BSP-дерево в Doom, воксельный ландшафт в игре Comanche — эти времена породили множество любопытнейших технологий, каждая из которых достойна отдельного рассказа.

В до сих пор звучащих отголосках так называемых консольных войн той эпохи (что круче — Sega Genesis или Super Nintendo?) часто можно услышать ещё одно название, которым уместно дополнить список выше — Mode 7. Мы не знаем, что это такое, если бы мы знали, что это такое, но обычно под этим подразумевается какое-то вращение или масштабирование объектов в играх, или же уходящая вдаль дорога, как в гоночных играх F-Zero и Super Mario Kart, или же карта мира, как во многих играх жанра JRPG. В реальности всё интереснее, сложнее, и как водится, требовало от разработчиков недюжинной креативности. Сегодня поговорим об этой технологии.
Читать дальше →
Всего голосов 79: ↑79 и ↓0+79
Комментарии10

Создаем изометрические уровни игры с помощью Stable Diffusion

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров19K

Всем привет. Сегодня я покажу вам, как можно создавать 2.5D уровни в изометрии с помощью быстрого прототипирования техникой grayboxing, и генеративного искусственного интеллекта, а именно Stable Diffusion. Практически весь процесс, описываемый в статье, довольно легко автоматизируется.

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

Читать далее
Всего голосов 67: ↑75.5 и ↓-8.5+84
Комментарии27

Знакомство с TPM (доверенным вычислительным модулем)

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров12K
TPM (Trusted Platform Module) — это международный стандарт, обеспечивающий доверенную работу с вычислительными платформами в целом и предоставляющий ряд возможностей обеспечения безопасности в компьютерных системах, в частности: хеширование, шифрование, подписывание, генерацию случайных чисел и т.д.


Он был разработан консорциумом TCG (группа по доверенным вычислениям) и стандартизирован в 2009 году Международной организацией по стандартизации (ISO) и Международной электротехнической комиссией (IEC), получив номер ISO/IEC 11889:2009.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии12

Лучшие бесплатные ресурсы для изучения этичного хакинга и кибербезопасности

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров32K

Информационная безопасность (ИБ) или кибербезопасность – это одна из самых важных и актуальныхобластей современной науки и технологий. В условиях постоянного развития интернета, киберпреступности и глобальной информатизации, специалисты по информационной безопасности востребованы как никогда. 

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

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

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

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

Читать далее
Всего голосов 47: ↑45 и ↓2+43
Комментарии6

Шпаргалка для алгособеса — алгоритмическая сложность, структуры данных, методы сортировки и Дейкстра

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров97K

Привет, Хабр!

Так уж повелось, что любой уважающий себя работодатель перенимает передовые^✻ методики FAANG — по этой причине практически во всех IT-собесах есть она: секция алгоритмов. Кто-то ей рад, кто-то не очень, но секция есть и уходить пока не планирует. Поэтому нужно закатать рукава и достойно встретить суровую реальность.

Читать далее
Всего голосов 216: ↑214 и ↓2+212
Комментарии77

Основы левел-дизайна: эффект течения или как не дать заскучать игроку

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


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

Большую часть времени игрок не должен заходить в тупик. Конечно, такие моменты можно использовать для разворота и других уникальных фишек геймдизайна. Проблема возникает, когда тупик — это просто тупик.
Читать дальше →
Всего голосов 32: ↑24 и ↓8+16
Комментарии17

Мессенджеровские чтения профессора Ричарда Фейнмана

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


Ещё в прошлом году мы начали перевод и озвучку Мессенджеровских лекций Нобелевского лауреата по физике Ричарда Фейнмана, которые он прочитал в Корнелльском университете в 1964 году.

В прошлом году нам удалось опубликовать 2 лекции из 7. И вот, благодаря нашим подписчикам, мы выпустили 3-ю лекцию, в которой Ричард Фейнман рассказывает о том, какие существуют законы сохранения, как они работают и какие у них есть сходства.

На случай, если кто не успел посмотреть, мы дублируем первые две лекции этого курса.
Приятного просмотра!
Всего голосов 21: ↑21 и ↓0+21
Комментарии8

Перевод отрывков из книги Роберта Хайнлайна «Заберите себе правительство» — часть 21

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

Условно-эффективные методы ведения кампании


А теперь я расскажу о том, как выбрать те мероприятия, в которых и в самом деле стоит участвовать.

Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии1

Основы компьютерных сетей. Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP

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

Всех с наступившим новым годом! Продолжаем разговор о сетях и сегодня затронем такую важную тему в мире коммутации, как VLAN. Посмотрим, что он из себя представляет и как с ним работать. А также разберем работающие с ним протоколы VTP и DTP.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии17

Плохо документированные особенности Linux

Время на прочтение8 мин
Количество просмотров66K
Привздохнув, произнесла:
«Как же долго я спала!»
image Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на stackoverflow, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания.

Все примеры относятся к Linux, хотя многие из них справедливы для других *nix систем, я просто взял за основу самую активно развивающуюся ОС, к тому же ту, которая у меня перед глазами и где я могу быстро проверить предлагаемый код.

Обратите внимание, в заголовке я написал «плохо документированные» а не «малоизвестные», поэтому тех кто в курсе прошу выкладывать в комментариях ссылки на членораздельную документацию, я с удовольствием добавлю в конце список.
Читать дальше →
Всего голосов 103: ↑102 и ↓1+101
Комментарии104

Структура кода в Unity3d — личное мнение и пара трюков

Время на прочтение7 мин
Количество просмотров60K
image
Хотелось бы поделиться личными впечатлениями о разработке мобильных игр на основе Unity3d. Изначально думал уместить в одном посте все мелкие «Tip&Trick» с которыми столкнулся при работе с Unity3d за последнее время. Но их оказалось черезчур много. Так что в этом посте будут только те, которые касаются непосредственно написания кода.

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

Читать дальше →
Всего голосов 37: ↑28 и ↓9+19
Комментарии21

Руководство для дизайнера по DPI

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


Это руководство — начальный материал о кросс-DPI и кроссплатформенном дизайне для начинающих и средних дизайнеров, желающих узнать о нем с самого начала или получить больше знаний. Без сложных математических и непонятных диаграмм, только непосредственные объяснения, упорядоченные в небольших разделах, для понимания и применения их непосредственно к вашей дизайнерской работе.

Автор — Sebastien Gabriel.

Я не знаю всего, так что, если по вашему мнению я где то ошибаюсь или вам нужно уточнить что-то, либо у вас есть предложения или вопросы для улучшения данного руководства, отправьте письмо (на англ) на sgabriel.contact@gmail.com. Вы также можете найти на меня Twitter, G+ или Facebook.
Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии19

Как воплотить в жизнь мечту детства и запрограммировать что-нибудь для Dendy

Время на прочтение4 мин
Количество просмотров103K
Для меня Dendy всегда была чем-то большим, чем просто приставкой. Я не только играл в неё, но и значительное время провёл внутри неё с паяльником в руках для некоторых простых модификаций. По дороге куда-нибудь я часто размышлял о том, как же создаются эти игры и как это работает внутри. Наверняка, многие из вас когда-то задавались подобными вопросами, такова уж натура будущих IT-шников.

Прошли годы. С некоторой периодичностью погружался в эму-тему, изучая всё новое на тематических сайтах, но я не решался окунуться в изучение ассемблера 6502 и архитектуры NES. Внутренний конфликт рационального и иррационального. Я долго убеждал себя, что мне не нужно тратить на это время, но… сорвался. Глядя на то, какие интересные вещи делают энтузиасты эму-сцены, я взялся за свою давнюю идею со светлой мыслью: «Я тоже смогу!». Две недели пролетели незаметно, я еле смог остановить себя. И да, теперь я знаком с ассемблером без команд умножения, о чём раньше только слышал в песне о программистской молодости.



Очень вероятно, что сейчас вы вспомнили свой первый картридж для Dendy и меню с романтическим сюжетом и приятной музыкой. На таких картриджах никогда не было «серьёзных» игр, и не глядя на громкие надписи типа 9999-in-1, их обычно было что-то около пяти. Но это меню… Разве это не шедевр китайской мысли? :) Мне с детства нравилась эта мелодия (Unchained Melody), а фоновые изображения сейчас навевают кучу ностальгических воспоминаний. Поэтому я взял IDA и дизассемблировал меню 300-in-1, вырезал всё лишнее, исправил ошибки, добавил фейдинг да немного приятных мелочей — и получилась демка Unchained Nostalgia (для запуска нужен эмулятор, например, Nestopia), есть запись на YouTube.

Хотите также окунуться в олдскульное программирование? Делюсь самым полезным и интересным, что я нашёл по теме.
Читать дальше →
Всего голосов 102: ↑100 и ↓2+98
Комментарии61

Работа с регистрами внешних устройств в языке C, часть 2

Время на прочтение8 мин
Количество просмотров10K
Наступила полночь и Шехрезада продолжила позволенные речи

Для начала замечание к предыдущей статье — я там позволили себе неуважительно высказаться по поводу ASSERT — поясню свою позицию. Мне не очень нравится. что проверка в ASSERT проводится только на этапе исполнения, проверка на этапе компиляции эффективнее. Мне в личку сообщили о существовании конструкции, позволяющей сделать необходимые проверки именно на этапе компиляции (я проверил — действительно работает), думаю, что пост на эту тему скоро появится в песочнице.
Итак, мы продолжаем…
Как было сказано выше, регистры внешних устройств характеризуются расположением в адресном пространстве (тут мы уже определились) и составом управляющих элементов. Дело в том что многие управляющие элементы недостаточно велики для того, чтобы занять целое слово конкретного МК и, чтобы сэкономить адресное пространство, несколько управляющих элементов могут быть упакованы в один регистр. Такое решение позволяет также в определенных условиях несколько увеличить скорость работы программ, взаимодействующих с данным внешним устройством, потому и встречается весьма часто. В то же время данное решение вызывает определенные проблемы в отношении языка программирования, о которых мы и поговорим.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии28

SSAO на OpenGL ES 3.0

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

Однажды, разглядывая очередную демку с эффектом, возник вопрос: а можно ли сделать SSAO на мобильном девайсе так, чтобы и выглядело хорошо и не тормозило?
В качестве устройства был взят Galaxy Note 3 n9000 (mali T62), цель — фпс не ниже 30, а качество должно быть как на картинке выше.
Реализация под катом
Всего голосов 65: ↑62 и ↓3+59
Комментарии16

Шпаргалка по шаблонам проектирования

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

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Всего голосов 192: ↑179 и ↓13+166
Комментарии66

Lock-free структуры данных. Основы: Модель памяти

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

В предыдущей статье мы заглянули внутрь процессора, пусть и гипотетического. Мы выяснили, что для корректного выполнения параллельного кода процессору необходимо подсказывать, до каких пределов ему разрешено проводить свои внутренние оптимизации чтения/записи. Эти подсказки – барьеры памяти. Барьеры памяти позволяют в той или иной мере упорядочить обращения к памяти (точнее, кэшу, — процессор взаимодействует с внешним миром только через кэш). “Тяжесть” такого упорядочения может быть разной, — каждая архитектура может предоставлять целый набор барьеров “на выбор”. Используя те или иные барьеры памяти, мы можем построить разные модели памяти — набор гарантий, которые будут выполняться для наших программ.

В этой статье мы рассмотрим модель памяти C++11.
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии8

Советы практикующего андрагога: как мы учимся

Время на прочтение7 мин
Количество просмотров43K
Люди, как известно, делятся на два типа: тех, кто читают инструкцию перед тем, как включать электроприборы, и тех, кто сначала включает, а в случае каких-то косяков начинает читать, что же он сделал не так.

Я абсолютно точно принадлежу ко второй группе. Поэтому именно так я начал создавать свой первый тренинг. На тот момент я уже 3 года работал в Intel, читал несколько внутри-корпоративных тренингов, как вдруг ощутил непреодолимое желание сделать свой тренинг.

Ведь всем известно, что корпоративные тренинги учат как жить в корпорации. Тебе вставляют в ухо шланг, через который начинают закачивать vision, mission & corporate values.

Поэтому, решил я, я сделаю свой тренинг, где расскажу всю правду-матку. И сделал. А что там делать? Берешь свой опыт, рисуешь красивые слайды, придумываешь упражнения — и вперед!

И это было ужасно. Нет, людям-то как раз нравилось, но мне сейчас это кажется ужасным. Потому что, как выяснилось через некоторое время, для успешного тренинга нужны не только собственный опыт, хорошее чувство юмора, умение выступать и общаться с людьми. Нужна еще методика. Без понимания которой люди выносят 10% той пользы, которой они могли бы получить от вашего тренинга, если бы вы вначале прочли инструкцию по тому, как обучать взрослых людей.

Оказывается, человечество уже накопило довольно много материала на эту тему. Который материал и вошел в науку об обучении взрослых людей, которая называется как? Нет, не педагогика. Это наука про обучение и воспитание детей. А про взрослых? Правильно — андрагогика.

В прошлой статье [1] мы говорили о матрице осознанности и компетентности и том, как взрослые люди обучаются навыкам. Давайте теперь поговорим о модели обучения, которая дает ответ на вопрос, а как учить взрослых людей. О цикле Колба.

Поняв эту модель, вы сможете:
  • Четко понимать, почему одни тренинги и семинары оказываются полезными, а другие заходят плохо
  • Правильно обучать других людей — как в группах, так и индивидуально
  • С умным видом рассуждать на тему обучения взрослых людей, уверенно используя термин “цикл Колба”


Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии18

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность