Search
Write a publication
Pull to refresh
82
0
Send message

Анализ исходного кода и защиты от копирования Prince of Persia

Reading time13 min
Views27K
image

Часть 1: введение


17 апреля 2012 года Джордан Мекнер опубликовал исходный код Prince of Persia.

Даже несмотря на то, что это версия для Apple II, написанная на ассемблере процессора 6502, было очень приятно погрузиться в код этой легендарной игры. Как обычно, меня ждало множество программных интересностей.

Очевидно слабая для программирования игр среда Apple II на самом деле была фундаментом несравнимых ни с чем инноваций и творчества: самомодифицирующийся код, внутренний загрузчик, умный формат гибких дисков и смещение таблиц поиска. В каждом своём модуле Prince Of Persia хранит сокровища инженерной мысли.

Чтение исходников позволило мне не только узнать больше о процессе разработки игр в 80-х, но и снова вызвало чувство признательности за те вещи, которые сегодня считаются естественными.

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

Wayland на замену X Window System

Reading time6 min
Views100K

В предыдущем посте мы узнали, почему X Window System — один из самых успешных проектов с открытым кодом в истории, пора заменить на новое решение для графического окружения Linux. В этой же статье мы узнаем, каков из себя Wayland — наиболее вероятный кандидат на замену X.




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

Что придет на замену X Window System?

Reading time9 min
Views67K

Одним из знаменательных Linux событий прошлого года стал выход 25-й Федоры с графическим окружением Gnome 3.22 на базе дисплейного сервера Wayland, который призван заменить X Window System. Но зачем вообще после стольких лет возникла такая необходимость?




В последнее время экипаж МКС пересел с Windows на Linux.
— Хьюстон, у нас проблемы. Нас сносит на Юпитер.
— Вы что, опять возились с xorg.conf?
— Да. Хьюстон, за три последних дня у нас почему-то выросли бороды.

Далее, речь о том, почему Linux необходима новая графическая среда, хотя бы в 2017 г, а отдельным постом я расскажу про Wayland и Mir.

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

Каково это — быть разработчиком в России, когда тебе сорок

Reading time37 min
Views162K
Привет всем, я — сорокалетний программист-самоучка, а это моя история.

Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
Читать дальше →

Real-time BeagleBone: использование высокоскоростных выводов

Reading time14 min
Views30K
Fast GPIO tutorial

Здравствуйте, уважаемые хабравчане! Давно уже являюсь читателем Хабра, но до сих пор не мог найти достойной темы для публикации. И вот, наконец, хорошенько прошерстив Хабр и GT, удивился отсутствию публикаций, посвященных программируемой подсистеме реального времени (PRU‐ICSS) линейки процессоров SitaraTM фирмы TI.

Наиболее популярной и доступной отладочной платой с процессором AM335x является так называемый «одноплатник» BeagleBone Black (White,Green). И именно наличие PRU делает BeagleBone наиболее предпочтительным для использования в hardware-проектах по сравнению с другими бюджетными одноплатниками типа *Pi. Кроме того, в некоторых случаях BBB-PRU может достаточно эффективно заменить связку ПК-МК-ПЛИС.

В данной статье приведен краткий обзор подсистемы PRU и режимов работы высокоскоростных портов ввода/вывода, рассмотрен пошаговый пример инициализации высокоскоростных портов вывода (Enhanced GPIO) и произведена оценка их производительности.
Добро пожаловать

Как я разбирался с 286м

Reading time3 min
Views18K
Впервые вплотную познакомиться с очень старым железом мне довелось около года назад, когда по рабочей необходимости пришлось вытаскивать данные со старого программатора Siemens PG685, работающего под операционной системой CP/M-86 2.1 с MFM HDD и 5,25 FDD 720kb. Данные тогда удалось перенести и считать на современный комп с помощью OmniFlop, но желание поработать с MFM накопителями и по возможности снять посекторную копию HDD c сименса осталось. И вот, совершенно случайно, у товарища по походам был найден уже выброшенный(выставленный в подъезд) дектоскопный 286й с 16битным MFM контроллером и 8битной CGA видеокартой.
Читать дальше →

Как сделать процессорный звук в Жигулях

Reading time8 min
Views44K

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


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


Под катом будет много схем и графиков.

Фонд перспективных исследований: конкурс на лучшую интеллектуальную технологию дешифрирования аэрокосмической информации

Reading time3 min
Views5.3K
Разработка интеллектуальных систем распознавания данных становится все более актуальной по мере развития интернета вещей и стремительного увеличения количества информации, которую собирают и которой обмениваются устройства: от камер систем безопасности до спутников, производящих съемку поверхности Земли. Однако анализ этой информации и последующее принятие решений пока остается за человеком: в силу естественных ограничений он не может быстро обрабатывать большие объемы данных и поэтому остается “узким местом” в процессе сбора и управления информацией.


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

Доработка китайского вольтамперметра WR-005

Reading time2 min
Views73K
Для своего очередного проекта (переделка ATX БП 580W в лабораторный), купил вышеназванный индикатор. Не сразу и не вовремя выяснилось, что вход питания у него гальванически связан с минусовым входом шунта. Это вносит ощутимую погрешность при питании индикатора от того-же источника, с которого измеряется ток (погрешность вплоть до ампера с моим шунтом на 50А!). Можно было, конечно, нагородить ещё одну дежурку и от неё запитать индикатор, но мне показалось это слишком жирным и я решил колупнуть сам индикатор.
Читать дальше →

Жаргон функционального программирования

Reading time10 min
Views95K


У функционального программирования много преимуществ, и его популярность постоянно растет. Но, как и у любой парадигмы программирования, у ФП есть свой жаргон. Мы решили сделать небольшой словарь для всех, кто знакомится с ФП.


В примерах используется JavaScript ES2015). (Почему JavaScript?)


Работа над материалом продолжается; присылайте свои пулл-реквесты в оригинальный репозиторий на английском языке.


В документе используются термины из спецификации Fantasy Land spec по мере необходимости.


Arity (арность)


Количество аргументов функции. От слов унарный, бинарный, тернарный (unary, binary, ternary) и так далее. Это необычное слово, потому что состоит из двух суффиксов: "-ary" и "-ity.". Сложение, к примеру, принимает два аргумента, поэтому это бинарная функция, или функция, у которой арность равна двум. Иногда используют термин "диадный" (dyadic), если предпочитают греческие корни вместо латинских. Функция, которая принимает произвольное количество аргументов называется, соответственно, вариативной (variadic). Но бинарная функция может принимать два и только два аргумента, без учета каррирования или частичного применения.

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

История одного диплома или как сделать шаробота

Reading time10 min
Views37K

История этого проекта начинается в 2014 году, когда я учился на 4-м курсе в ведущем техническом вузе России на кафедре «Робототехнические системы». В это время я уже начал задумываться над темой диплома и искал проект, который был бы интересен мне, и при этом в нем присутствовала некоторая новизна. И вот однажды, увидев видео шаробота Rezero, я с друзьями захотел попробовать повторить успех. Кому интересно, что из этого получилось — прошу под кат.


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

Как Linkmeup ходил в гости к «НТЦ Метротек»

Reading time10 min
Views8K
Уже почти неделю, как за окном был беспробудный Питер, всё местное население окончательно перешло на жаберное дыхание и посмеивалось над гостями города, а так же теми кто ещё не выработал столь необходимое здесь умение. Ситуация требовала решительных мер и редакция Linkmeup приняла стратегическое решение поехать в гости. Выбор пал на “НТЦ Метротек”, благо звали они к себе давно и обещали интересное времяпрепровождение. По результатам визита был написан сей отчёт, который и предлагается вашему вниманию.

Внимание! Под катом текст с картинками. Качество картинок может сильно расстроить творческих личностей, но у нас был только длиннофокусный объектив. Наше дело предупредить.



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

Wiren Board 5: теперь устаревшая версия контроллера для автоматизации

Reading time6 min
Views28K

Всем привет!
Мы давно не писали на Хабр (который уже не тот), но в конце прошлого года выпустили новую версию Wiren Board — контроллера для автоматизации с открытым ПО, и сегодня расскажем о ней (под катом есть скидка!)

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

Кризис ожирения сайтов

Reading time30 min
Views123K
Примечание переводчика: визит под кат этого поста означает большие объёмы потреблённого трафика. И это иронично, если учесть поднятую тему. Но всё сразу встаёт на свои места, если помнить, что в оригинале это было выступление в прошлом ноябре в Сиднее длиной почти в час. Чтение поста занимает куда меньше времени. В форме видеозаписи (1280×720) речь занимает два гигабайта. Пост же занимает всего лишь 12 МиБ. Рекомендуется просмотр на широких мониторах.



Перед началом тирады я хотел бы обратить внимание на то, что прекрасные сайты бывают любых форм и размеров. И я здесь не собираюсь кого-то пристыживать за количество использованных бит, объём использованных ресурсов и так далее. Я люблю большие сочные галереи изображений, мне нравятся огромные эксперименты на JavaScript, я смотрю онлайн-видео в высоком разрешении, как и все вы. Я считаю, что подобное замечательно.

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

Как новые руководители разрушают доверенные им компании

Reading time26 min
Views403K
Эта статья – о рисках смены руководства в больших компаниях и характерных явлениях при попытках игнорировать закон эффективного управления собственностью:
Эффективно управлять можно только той собственностью, которую мог бы создать сам.
Кто не может создать, – будет только разрушать!
И.А. Дедюхова, Кодекс Хамурапи
Картинка для привлечения внимания читателей из поколений Y и Z:


Краткое содержание


Новый директор себе в подчиненные и советники пригласит своих «проверенных людей». Увеличение штата топ-менеджеров в условиях фиксированного ФОТ повлечет за собой сокращение рядовых сотрудников на значительный процент.
Новый директор в первую очередь будет сокращать те подразделения, работу которых он не понимает. Под прессом психологического давления руководители этих подразделений возмут на себя обязательства самостоятельно разработать планы по сокращению и принять на себя все риски их реализации.
Сокращения пройдут под флагом повышения эффективности, но для «непонятных директору» подразделений не смогут сформулировать критерии этой эффективности, кроме «минимизации затрат». Цель по минимизации затрат без дополнительных обоснованных ограничений – это цель по уничтожению, и не имеет отношения к настоящей оптимизации.
Отсекая непонятные ему части компании (выводя в аутсорс и т.п.), директор попытается превратить компанию в ту, работу которой он полностью способен понять, которой он в полной мере способен управлять.
Проблему нехватки знаний в технической области новый директор и его команда компенсируют «помощью» от западных консалтинговых компаний. Это приведет к ситуации внешнего управления, причем без всякой ответственности за диктуемые извне решения.
Внешняя и внутренняя отчетность о работе компании до самого конца не будет показывать никаких признаков проблем, т.к. тому, кто принес плохие вести не выдают премию, а рубят голову.


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

Обзор и сравнительное тестирование ПЭВМ «Эльбрус 401‑PC». Дополнение — вопросы и ответы

Reading time25 min
Views87K
Пожалуй, главным результатом публикации этого обзора, — помимо собственно ознакомления общественности с первыми независимыми впечатлениями от нового компьютера, — стало желание самой фирмы МЦСТ раскрыть побольше подробностей, устранить возникшие недоразумения и ответить на вопросы, поднимаемые в статье и в комментариях к ней. Некоторые из этих вопросов настолько фундаментальны, что заслуживают по отдельной статье каждый, и потому требуют серьёзной проработки. Сейчас же мы рассмотрим те из них, которые лучше всего укладываются в формат интервью.

Вид системного блока Эльбрус 401-PC спереди и сбокуИнфа 100 %

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

Как мы перешли со Scala на Go

Reading time6 min
Views45K
Перевод статьи технического директора компании CrowdStrike, о том, как и почему они перешли со Scala на Go по мере роста компании с 5 до 200+ человек.

Scala долгое время была частью стека нашей компании CrowdStrike, по сути даже главным языком. Я помогал внедрять Scala когда мы начали разрабатывать наш софт в 2012-м году. На самом деле, это было даже одной из главных причин моего перехода в CrowdStrike. Несколько основных разработчиков были заинтересованы во внедрении Scala, так что это был хороший вариант для всех.

Я перешёл из компании Gravity, которая достаточно активно использовала Scala. Это был основной язык в компании. Я привык к нему, мне он нравился, я видел его мощь и был уверен, что смогу предотвратить некоторые из сложностей, которые я видел в Scala, по мере того, как CrowdStrike будет расти. Мы делали высоконагруженную аналитику, batch-задачи на Hadoop и наш Chief Architect (привет, Биссел!) использовал лямбда-архитектуру задолго до того, как это стало модно.

Недавняя цитата от одного из наших senior-разработчиков заставила меня таки написать этот пост, описывающий, почему мы перевели большую часть нашего стека на Go, и почему новые сервисы мы по-умолчанию теперь пишем именно на Go.
Читать дальше →

Компания Green Magic Homes продаёт экологичные хоббичьи дома

Reading time1 min
Views15K
image

Американская компания Green Magic Homes предлагает всем желающим почувствовать себя хоббитом. Для этого нужно всего лишь приобрести у компании модульное жилище, напоминающее «дом-под-холмом», собрать его и покрыть сверху слоем дёрна. После этого, даже если на вашем участке не было холма, он появится – и вы сможете жить в этой современной версии норы. Для большего сходства даже дверные проёмы и окна сделаны округлыми.

image

Модули сделаны из лёгкого и прочного (по заверениям компании) материала, композитного ламината. По сути, это нечто вроде стекловолокна, из которого, например, делаются современные лодки. Обещают, что материал не подвержен коррозии, не токсичен и пожаробезопасен.
Читать дальше →

Как происходит рендеринг кадра в GTA V

Reading time16 min
Views120K
Серия игр Grand Theft Auto прошла долгий путь с момента своего первого релиза в 1997 году. Примерно 2 года назад Rockstar выпустила GTA V. Просто невероятный успех: за 24 часа игру купило 11 миллионов пользователей, побито 7 мировых рекордов подряд. Опробовав новинку на PS3, я был весьма впечатлен как общей картинкой, так и, собственно, техническими характеристиками игры.

Ничто так не портит впечатление от процесса, как экран загрузки, но в GTA V вы можете играть часами, преодолевая бескрайние сотни километров без перебоев. Учитывая передачу солидного потока информации и свойства PS3 (256 Mb оперативной памяти и видеокарта на 256 Mb), я и вовсе удивился, как меня не выбросило из игры на 20-ой минуте. Вот где чудеса техники.

В этой статье я расскажу о проведенном анализе кадра в версии для ПК в среде DirectX 11, которая съедает пару гигов как оперативки, так и графического процессора. Несмотря на то, что мой обзор идет со ссылкой на ПК, я уверен, что большинство пунктов применимо к PS4 и в определенной степени к PS3.

Анализ кадра


Итак, рассмотрим следующий кадр: Майкл на фоне любимого Rapid GT, на заднем плане прекрасный Лос-Сантос.

image

Осторожно! Трафик!
Читать дальше →

«Многие выбирают Agile, потому что больше ничего не умеют» — интервью с Дмитрием Завалишиным из DZ Systems

Reading time23 min
Views14K
Всем привет. Это снова «Без слайдов», и на этот раз у меня в гостях побывал легендарный Дмитрий Завалишин, известный всем как один из создателей Яндекс.Гуру (предшественник Яндекс.Маркета), основатель группы компаний DZ Systems и автор операционной системы Фантом.



О чем мы поговорили:

  • кем Дмитрий себя сегодня ощущает: бизнесменом или айтишником;
  • какие ниши заняли мобильные и веб-приложения в современной жизни;
  • что такое горизонтальные и вертикальные рынки;
  • чем отличается бизнес по разработке для этих рынков, и чем отличаются коробочные решения от кастомных;
  • как можно быстро оценивать клиентов по трем параметрам;
  • как найти хорошие кадры на проект;
  • почему Agile — это беда для российского рынка разработки;
  • наконец, как сделать ваших заказчиков счастливыми.


Все это — в традиционном видеоинтервью:



А тех, кто предпочитает буквы картинкам, приглашаю под кат, где вы найдете расшифровку этого интервью.

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

Information

Rating
Does not participate
Location
Пермь, Пермский край, Россия
Registered
Activity