Рубрика «Блог компании RUVDS.com» - 101

Мы уже создали вполне рабочий эмулятор CHIP-8, но он, к сожалению, получился очень медленным. Почему? Если заглянуть в его главный цикл — можно увидеть, что данные на экран выводятся после выполнения каждого шага цикла. При включённом vsync SDL пытается привязать скорость рендеринга к частоте обновления кадров дисплея (возможно это — 60 Гц). Для нас это означает то, что метод SDLViewer::Update, почти при каждом его вызове, долго будет находиться в заблокированном состоянии, ожидая сигнала vsync от монитора.

Эмуляция компьютера: интерпретатор CHIP-8, таймеры и обработка ввода - 1

Насколько быстро должен работать наш эмулятор? Точный ответ на этот вопрос дать не так уж и просто. На реальном компьютере на выполнение операций с разными кодами нужно разное время, но известны ориентировочные временные показатели выполнения различных операций. Можно выполнить инструкцию, выяснить то, сколько времени её выполнение должно занимать на реальном аппаратном обеспечении, а после этого «усыпить» программу до того момента, когда можно будет продолжать работу. Но тут есть одна проблема, которая заключается в том, что у нас, при таком подходе, нет доступа к временным параметрам работы CPU. На выполнение большинства этих инструкций должна уходить пара микросекунд, но на современных системах «усыплять» программы можно, как минимум, на одну миллисекунду.
Читать полностью »

Введение

Эта статья представляет собой ознакомительный материал о написании загрузчика на С и Ассемблере, но здесь я не буду вдаваться в сравнение производительности итогового кода, созданного на этих языках. В этой работе я просто вкратце изложу процесс загрузки флоппи-образа через написание собственного кода с последующим его внедрением в загрузочный сектор устройства. Все содержание статьи будет разделено на несколько частей, так как за раз достаточно сложно изложить всю нужную информацию и о компьютерах, и об устройствах загрузки, и о написании самого кода. Здесь я поясню наиболее общие аспекты компьютерной науки и суть процесса загрузки, а также обобщил значение и важность каждого этапа, чтобы упростить их понимание и запоминание. Если же вам потребуется более подробное объяснение, то можете дополнительно почитать другие статьи, которых в интернете нынче предостаточно. Читать полностью »

Обзор GameLisp: нового языка для написания игр на Rust - 1

Программист, подписывающийся псевдонимом Fleabit, уже полгода разрабатывает свой язык программирования. Сразу же возникает вопрос: ещё один язык? Зачем?

Вот его аргументы:

Недавно мы опубликовали перевод первого материала из серии статей, посвящённой эмуляции компьютера. Автор этих статей подробно рассказывает о написании интерпретатора CHIP-8 на C++. В той публикации мы устроили опрос о целесообразности перевода продолжения цикла. Почти 94% тех, кто принял участие в опросе, продолжение перевода поддержали. Поэтому сегодня мы представляем вашему вниманию второй материал о CHIP-8.

Эмуляция компьютера: интерпретатор CHIP-8 и формирование изображений - 1
Читать полностью »

Я достаю из широких штанин
Рейтинг
И хвастаюсь гордо:
«Смотрите, завидуйте,
Номер один,
А не просто айтишная морда».

Третий год подряд мы заканчиваем на первом месте среди компаний на Хабре. Это не гонка «Формулы 1», это скорее наши «24 часа Ле-Мана», когда на предельном ресурсе и в самых неприятных условиях ты вынужден не останавливаться сутки. Только у нас это не 24 часа, а 24/7/366. И даже сейчас, за несколько часов до Нового года мы пишем этот пост, чтобы не просто рассказать о рекордах, но и немного рассказать о том, как к этому приблизиться.

Первым в двадцать первый - 1


Мы тут не без самоиронии :)

Все расчёты в этой публикации основаны на анализе CSV-файла с информацией обо всех постах блога, который можно экспортировать в панели управления корпоративного блога — спасибо Хабру за такую возможность.
Читать полностью »

70 лет компьютерной истории, обращенные в музыку - 1
Реконструкция Colossus в британском Национальном музее вычислительной техники, Блетчли парк

Поздно ночью в британском Национальном музее вычислительной техники несколько старейших машин пробудились от длительного механического сна. Композитор и саунд-дизайнер Мэтт Паркер сделал 126 записей звучания компьютеров, заключавших в себе 70-летнюю историю развития, чтобы сохранить эти редчайшие голоса и преобразовать их в музыку.
Читать полностью »

Исследование, продолжавшееся десять лет, подтвердило отсутствие связи между игрой в жестокие видеоигры в раннем подростковом возрасте и агрессивным поведением в дальнейшей жизни

В журнале «Cyberpsychology, Behavior, and Social Networking» были опубликованы результаты продольного исследования, которое продолжалось десять лет. Оно было посвящено изучению того, как игра в жестокие видеоигры в раннем подростковом возрасте (10 лет) отражается на поведении взрослых людей (23 года). Это исследование не нашло корреляции между игрой в жестокие видеоигры в детстве и повышенным уровнем агрессии по прошествии десяти лет.

Итог десятилетнего исследования связи жестоких видеоигр и подростковой жестокости в дальнейшей жизни - 1
Читать полностью »

TreeOS. 16-битная рождественская демка в загрузочном секторе - 1

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

Путешествие байта данных во времени - 1

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

В качестве первого и самого простого примера можно взять перфокарты, где бит данных хранился в виде наличия или отсутствия дырки в определенном участке. Если же углубится дальше во времена аналитической машины Бэббиджа, то в ней бит представлялся путем изменения положения механической шестеренки или рычага. На магнитных устройствах хранения, таких как ленты и диски, единица информации представляется полярностью определенной области магнитной пленки. В современной динамической оперативной памяти (DRAM) бит выражается одним из двух возможных уровней электрического заряда конденсатора.
Читать полностью »

Завтра, 28 декабря в 20:00 у нас выступает Артем Попов — тимлид команды VK Performance Advertising.

Артем руководит командой, которая занимается задачами, связанными с Data Science в рекламе. Их задача делать рекламу в ВК эффективнее и выгодней.

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

Артем расскажет про интересные задачи для дата-саентистов в мире рекламы.

Анонс: как дата-саентисты в ВК делают рекламу эффективной - 1Анонс: как дата-саентисты в ВК делают рекламу эффективной - 2Анонс: как дата-саентисты в ВК делают рекламу эффективной - 3Анонс: как дата-саентисты в ВК делают рекламу эффективной - 4
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js