Pull to refresh
23
0
Дмитрий Чернов @cher-nov

в экономике, так сказать, необходим

Send message

Ответ на статью о «Наиболее быстром интерпретаторе»

Level of difficultyMedium
Reading time9 min
Views6K

Недавно была опубликована статья под заголовком "Глобально оптимальный, восьмой и наиболее быстрый вид интерпретаторов байткода". Несколько тезисов из статьи вызвали у меня сомнения в их справедливости. Об этом я попробовал написать ряд комментариев тире вопросов к указанной статье. Но основной лейтмотив всех ответов сводился к тому - "а ты напиши свою статью". Подход не столько инженерно-научный, сколько детсадовский. Мне бы хватило и содержательных ответов в формате комментариев, но как говорится - уговорили :).

Итак, что же утверждается автором статьи про наиболее быстрый интерпретатор:

Читать далее
Total votes 43: ↑38 and ↓5+45
Comments71

RVO и NRVO в C++17

Reading time8 min
Views27K

Предположим, что в программе на C++ вы возвращаете из функции локальную переменную. Что происходит при вызове оператора return: копирование, перемещение или ни то, ни другое? От этого зависит длительность вызова функции и эффективность наших программ. Я постарался разобраться с этим вопросом и дам рекомендации по написанию функций так, чтобы повысить шансы на применение этой оптимизации компиляторами. Ну, а сокращения в названии статьи — это Return Value Optimization (RVO) и Named Return Value Optimization (NRVO).

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments31

Как мы задумали небольшую выставку, а в итоге открыли два неизвестных советских компьютера. Часть 2

Level of difficultyEasy
Reading time19 min
Views6.5K
Это продолжение рассказа о выставке, посвящённой 100-летию конструктора вычислительной техники М.А. Карцева и 40-летию компьютера «Агат». Первая часть здесь.



В предыдущей статье я рассказал, какие материалы по «Агатам» удалось найти в архиве НИИВК. Хотя и те события от нас отделяет более 40 лет, по меркам истории это буквально вчера. Сегодня же я предлагаю заглянуть в более далёкие времена, когда ЭВМ не то что не называли компьютерами — когда сама идея того, что электронная вычислительная машина может существовать, вызывала скепсис.

Читать дальше →
Total votes 46: ↑46 and ↓0+66
Comments29

Создание процессора с нуля для чайников

Reading time18 min
Views41K

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

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

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

Читать далее
Total votes 112: ↑112 and ↓0+138
Comments71

Как устроены серийники для Windows, и как восстановить стёршийся COA

Level of difficultyMedium
Reading time9 min
Views25K

Эта история начинается с того, что я попытался переустановить Windows на ноутбуке, доставшемся мне вот с такой наклейкой Certificate of Authenticity (COA): часть символов серийника видны хорошо, остальные – в большей или меньшей степени угадываются; но несколько попыток ввести серийник «на глаз» успехом не увенчались. Пришлось углубляться в вопрос подробнее.

Читать далее
Total votes 129: ↑128 and ↓1+166
Comments29

Настраиваем удобную сборку проектов в Visual Studio

Reading time43 min
Views86K
Эта статья является руководством по настройке сборки C++ проектов Visual Studio. Частично она сводилась из материалов разрозненных статей на эту тему, частично является результатом реверс-инжениринга стандартных конфигурационных файлов Студии. Я написал ее в основном потому что полезность документации от самой Microsoft на эту тему стремится к нулю и мне хотелось иметь под рукой удобный референс к которому в дальнейшем можно будет обращаться и отсылать других разработчиков. Visual Studio имеет удобные и широкие возможности для настройки по-настоящему удобной работы со сложными проектами и мне досадно видеть что из-за отвратительной документации эти возможности очень редко сейчас используются.

В качестве примера попробуем сделать так чтобы в Студию можно было добавлять flatbuffer schema, а Студия автоматически вызывала flatc в тех случаях когда это нужно (и не вызывала — когда изменений не было) и позволяла задавать настройки напрямую через File Properties



Укрощаем MSBuild
Total votes 42: ↑39 and ↓3+36
Comments37

Худший в мире планшетный компьютер

Reading time1 min
Views56K


Похоже, худшие в мире планшеты делают не в Китае, а в Германии. Жертвами этого технического беспредела стали медики. В подкасте об электронике EEVblog изучили медицинский планшет Esinomed Infoview.

«Это худшее из того, что я видел за 46 лет карьеры в электронике», — сказал в комментариях один из подписчиков EEVblog. С ним тяжело не согласиться. Добавим, что ведущий подкаста брал каждую из деталей планшета с явным отвращением (возможно, его даже стошнило, но это вырезали при монтаже).

В общем, слабонервным не смотреть.
Читать дальше →
Total votes 53: ↑37 and ↓16+21
Comments165

IT в «лихие 90е» — из воспоминаний бумера

Reading time6 min
Views34K

Карьера ITшника в "лихие 90е" и первые заработанные деньги. Марс и Сникерс, видеомагнитофон, первая машина, Btrieve, NLM модули, ERP для фирмы, собранная на коленке и отлаживаемая сразу на PROD, взлет и падение Novell.

Годы: 1991-2000.

Читать далее
Total votes 84: ↑81 and ↓3+109
Comments106

Воспоминания бумера: Америка в эпоху дот-комов

Reading time7 min
Views15K

Продолжение карьеры бумера в Америке.

Культурный шок, холодная ночевка в лесу на куртке, взлет и крах дот-комов, сдача на права и разговор с копом. Карьера, разные фирмы, жизнь. Простые путешествия на самолетах до 9/11.

Читать далее
Total votes 46: ↑46 and ↓0+46
Comments16

Создание Git-коммита: The Hard Way

Reading time6 min
Views10K

Мы постоянно используем высокоуровневые команды git, такие как git add и git commit. Однако также существует другая группа команд git, которые обрабатывают низкоуровневые операции.

В этой статье мы создадим git‑коммит, используя низкоуровневые операции, а не команду git commit.

Читать далее
Total votes 34: ↑34 and ↓0+43
Comments8

Магия разработки видеоигр id Software

Reading time15 min
Views30K
От переводчика: эта статья написана Дэвидом Кушнером в 2002 году, годом позже он издал известную книгу «Masters of Doom». Статья показалась мне интересной, потому что в ней есть подробности реализации технологий id, почему-то отсутствующие в книге.

За кулисами экшена и агрессии игр id скрыта революция в технологии настольных компьютеров



image
В течение последних 12 лет эволюция реализма графики Id Software поднимает планку для всей отрасли видеоигр. Среди игр-новаторов находятся [снизу вверх, справа налево] Commander Keen (1990) [прим. пер.: на самом деле на скриншоте Dangerous Dave in the Haunted Mansion], Hovertank (1991), Wolfenstein 3D (1992), Doom (1993), Quake (1996) [прим. пер.: на самом деле Quake II] и Return to Castle Wolfenstein (2001).

После полуночи начинается схватка. Солдаты преследуют нацистов по коридорам замка. Огнемёт изрыгает чудовищный язык пламени. Это Return to Castle Wolfenstein, компьютерная игра, ставшая не только спинномозговым приключением, но и чудом науки. Она же — последний продукт Id Software (Мескит, штат Техас). Благодаря своим технологически инновационным играм id оказала огромное влияние на мир компьютерных вычислений: от привычных в современных PC высокоскоростных полноцветных графических карт высокого разрешения до появления армии программистов и игроков в онлайновые игры, внёсших вклад в поп-культуру.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments19

История игрушки. Поле Чудес

Reading time11 min
Views301K
Случилось это в городе, закрытом от шпионов, цыган и бед социалистической экономики. В Советском Союзе было ровно 10 таких городов, повязанных атомным секретом.

Жизнь мальчиков с математическими способностями в атомных городах была предопределена — школа с пятерками по алгебре и геометрии, мех-мат столичного университета, возвращение в систему, квартира через год, кандидатская степень в 40 лет, ВАЗ 2103 к пятидесяти годам, звание доктора, гараж, шесть соток, четыре квадратных метра.

Бесконечные размышления о математическом моделировании ядерных взрывов разрывали мальчикам мозг. Мозг можно было отвлечь тремя способами — алкоголем, азартными играми и спортом. Секс и музыка помогали не всегда.

Pole Chudes для iPhone

Далее я проваливаюсь в историю компьютерной игры.
Под тегом личные воспоминания ветерана без ссылок, рекламы, картинок и кода.
Спасибо за чудесные комментарии, парни.

Читать дальше →
Total votes 934: ↑924 and ↓10+914
Comments312

Разница между фальшивыми и истинными смещениями в 3D-графике

Reading time12 min
Views19K
image

Bump maps (рельефные текстуры), Normal maps (карты нормалей), Displacement и Vector Displacement — вероятно, вы уже сталкивались хотя бы с одним из этих терминов. Несмотря на то, что о них уже есть много информации, похоже, многие путают их различия и последствия использования разных типов карт. В статье я расскажу о том, какие проблемы могут вызывать эти карты.

Все четыре типа текстур имеют одинаковое предназначение — они позволяют добавить на поверхность модели дополнительные детали, используя для этого разные способы. Эти способы можно разделить на две категории, которые я буду называть истинными смещениями (True Displacements) и фальшивыми смещениями (Fake Displacements). Истинные смещения перемещают вершины, а фальшивые стремятся достичь того же внешнего вида без изменения геометрии. Пока я сосредоточусь только на различиях между двумя категориями, а не буду анализировать каждую карту по отдельности.

image

В общем случае, истинные смещения обеспечивают более чёткие результаты, но сильно увеличивают время рендеринга.
Total votes 19: ↑19 and ↓0+19
Comments4

Почта не ходит далее 500 миль – ЧаВо

Reading time9 min
Views14K
История про электронную почту, которая не уходила дальше 500 миль от отправителя, давно стала бородатой классикой. Я думал, что нормальная реакция – просто посмеяться, но нашлось не так мало людей, пожелавших доказать автору, что такого не могло быть, потому что… В конце концов автор не выдержал и выпустил целый FAQ. Итак, встречайте:

ЧаВо по электронной почте, которая не уходила дальше 500 миль


Я получил множество ответов на публикацию «Почта не ходит дальше 500 миль». Мой рассказ был много раз перепечатан и разошёлся гораздо шире, чем я мог надеяться. Большая часть ответов – благодарности за забавную историю и предложения работы (кстати, спасибо за них, и мне бы хотелось, чтобы они продолжали приходить!) Однако немало было и тех, кто выискивал в моём рассказе неточности и противоречия, придираясь к мелочам. Вместо того, чтобы отвечать на каждый такой выпад, я просто собрал наиболее часто встречающиеся вопросы и ответил на все сразу.

1. Это правда было, или история – всего лишь байка?

Это быль. В то время я отвечал за централизованную систему электронной почты в кампусе Университета Северной Каролины в Чапел Хилл (Chapel Hill). Кроме того, я занимался и настройкой электронной почты тех подразделений, которые по каким-то причинам использовали собственные сервера. Главное в контексте этой истории то, что я написал файл конфигурации почтового сервера, sendmail.cf, который использовался большинством серверов кампуса.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments12

Андреас Клинг, его операционная система SerenityOS и браузер Ladybird

Level of difficultyEasy
Reading time7 min
Views13K


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

Взять к примеру шведского программиста Андреаса Клинга (Andreas Kling). В 2018 году он вышел из государственной клиники реабилитации наркоманов после трёхмесячного курса — и в качестве хобби начал разработку операционной системы SerenityOS. Нужно было чем-то занять свободное время и избавиться от посторонних мыслей. Создание новой ОС вполне подходит для такой задачи.

За несколько лет SerenityOS стала одним из крупнейших опенсорсных проектов в мире с тысячами контрибуторов. Приятный интерфейс в стиле 90-х, Unix-подобное ядро и лучшие идеи из других ОС — вот рецепт успеха.
Читать дальше →
Total votes 58: ↑56 and ↓2+73
Comments23

Rust и асинхронные функции: как улучшить структуру кода и повысить производительность с помощью абстракций

Reading time26 min
Views3.1K

В начале 2010-х годов в программировании появился новый подход к реализации параллелизма с использованием абстракций future и promise, а также синтаксического приёма async/await. Эти технологии облегчили работу с асинхронным кодом, но вызвали ожесточённые споры среди разработчиков. Автор статьи, системный программист Saoirse Shipwreckt*, рассматривает две противоположные точки зрения на future от их апологета Мариуса Эриксена и критика Боба Нистрома. 

Под катом читайте о преимуществах и недостатках абстракций, а также о различных видах параллелизма в Rust и способах улучшения структуры кода с помощью future.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Total votes 19: ↑19 and ↓0+20
Comments4

Бекпорт на примере Node.js v22 и Windows 7

Level of difficultyHard
Reading time12 min
Views3.5K

Что делать если надо запустить современный софт в устаревшем окружении? Рассказываем о процессе «портирования назад» последней версии Node.js на Windows7.

Погрузиться
Total votes 18: ↑18 and ↓0+23
Comments26

Знакомство с PowerPC

Level of difficultyMedium
Reading time11 min
Views9.7K
Приветствую всех!

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

И так уж вышло, что начал я с PowerPC, а точнее — с компьютеров Apple на базе PowerPC G4.



Итак, в данной статье поговорим о том, что обычно никогда не упоминают в статьях про такое железо: как его запустить тому, кто до этого никогда не имел с ним дела. Попутно узнаем, чем примечателен этот компьютер и на что он вообще способен. Как обычно, будет много интересного.
Читать дальше →
Total votes 54: ↑53 and ↓1+67
Comments30

Назад в прошлое. Часть 3. Интервью с Кеном Сильверманом, создателем Build. От технических деталей и DN3D до Ion Fury

Level of difficultyHard
Reading time21 min
Views1.4K

Новый день. Новое интервью. Новые 30 вопросов.

Краткая справка об основных действующих лицах:

Ken Silverman - создатель Build, а также ряда иных решений, вроде VOXLAP, на основе которых в последующем были созданы игры в диапазоне от Duke Nukem 3D (1996) и Blood (1997) до Ion Fury (2019), а также Electric Highways (2015) и Voxelstein 3D (2008) в отдельности. Домашняя страница - Ken Silverman's Official Home Page.

Читать далее
Total votes 8: ↑8 and ↓0+9
Comments3

Системы на основе очередей задач

Reading time12 min
Views12K
Привет, Хаброжители!

Мы решили поделиться переводом главы «Системы на основе очередей задач» Из готовящейся к выходу новинки «Распределенные системы. Паттерны проектирования» (уже в типографии).

image

Простейшая форма пакетной обработки — очередь задач. В системе с очередью задач есть набор задач, которые должны быть выполнены. Каждая задача полностью независима от остальных и может быть обработана без всяких взаимодействий с ними. В общем случае цель системы с очередью задач — обеспечить выполнение каждого этапа работы в течение заданного промежутка времени. Количество рабочих потоков увеличивается либо уменьшается сообразно изменению нагрузки. Схема обобщенной очереди задач представлена на рис. 10.1.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments2
1
23 ...

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Registered
Activity