5 518
35 097

Заходил(-a)

Написал(-a) комментарий к произведению Ретро бит [5]

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

Написал(-a) комментарий к произведению Ретро бит [5]

Извиняюсь, все же поспорю.

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

Причем именно для 3d-ускорителей, в обычных CPU и без него грядку уже монстры окучивают, а 3d в реале до середины 90-х были узкоспецифичной нишей дорогих CAD и киноидустрии и еще 10 лет понадобилось, пока догадались, что на них можно сделать дешевые ускорители вычислений (специальные, стоимостью в крыло от боинга были еще с 80-х).  И еще +5...7 лет, пока доперло, что можно нейросети легко тренировать. Притом и тут тоже послезнание, что нейросети считались интересной, но не особо стоящей внимание интеллектуальной игрушкой.  

Написал(-a) комментарий к произведению Ретро бит [5]

Есть ли планы, чтобы ГГ со временем залез в железо, например, 3d-ускорители для игр? Мне кажется, что на определённом этапе развития это естественно с его послезнанием.  Тут же прям золотая даже не жила, а рудники, причём никто об этом не подозревает и ещё очень долго не поймёт. В реале ведь даже nvidia через лет 10 только сообразила, что видеокарты это не только "ценный мех".

Написал(-a) комментарий к произведению Cyberpunk 2077 | Демоны Найт-Сити 3

Круто! Смэшер, Ви, Сильверхенд, Бестия, Блэкхенд, Альдекальдо и корпы Арасаки за и против Ёринобу. Просто охренеть. А еще прямо перчинка к блюду интересно как боевой бордель отожгет в замесе.

Написал(-a) комментарий к произведению Cyberpunk 2077 | Демоны Найт-Сити 3

Чую крутой замес намечается. За ГГ даже обидно, ему явно времени не хватает, дали бы ему время прокачался бы получше, подлечился или новое тело завел или что он там планировал, а так идет в драку уже с большими проблемами.

Написал(-a) комментарий к произведению Ретро бит [5]

Кстати о книгах, я вот не знал, что "Идентификация Борна" снята по книге (или забыл), кроме того, сценарий или наметки к фильму тоже могут быть очень давние. Допустим 10 лет назад сценарий отвергли,  потом в дело пошёл, а Крис только помнит когда фильм снимался.

Написал(-a) комментарий к произведению Ретро бит [5]

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

Написал(-a) комментарий к произведению Ретро бит [5]

А PC уж лучше сразу брать XT - это будет вложение на долго.

В 1982-м XT еще не выпускается. А в 1983-м это будет вложение на один ну пусть два года, т.к. в 1984-м появится AT на 286-м процессоре, а в 1985-м уже 386-й процессор.  Впрочем, с потоком денег за игры  покупка новых ПК станет просто текущими расходами.

Написал(-a) комментарий к произведению Ретро бит [5]

Зачем нанимать посторонних актеров, когда есть Трейси и Изабелла?

Я имел ввиду более исполнение трюков.

Возможно, хватит вообще фотоаппарата с большой скоростью съемки

Очень возможно.  Правда они тоже недешевые были. Еще интересно, что ГГ может оказаться нужно не столько скорость съемки, сколько скорость работы затвора, чтобы снимать без смаза. Например, в 1982-м году Nikon FM2 имел относительно скромную скорость 3.5 кадра в секунду, но зато выдержка могла быть до 1/4000 сек.  Canon F-1 имела скорость до 14 кадров в секунду, но выдержка дольше.

Написал(-a) комментарий к произведению Ретро бит [5]

Тоже подумал, у него же под боком Голливуд со всеми разными студиями там. Наверняка есть варианты аренды для съемок, еще и провести их можно в павильонах, может даже нанять профессиональных актеров и исполнителей трюков.

Написал(-a) комментарий к произведению Ретро бит [5]

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

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

Написал(-a) комментарий к произведению Ретро бит [5]

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

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

Написал(-a) комментарий к произведению Ретро бит [5]

Между прочим, уже внесенный залог не мог быть переиспользован? Или новый суд - новый залог, даже если прежний ещё не вернули?

Написал(-a) комментарий к произведению Ретро бит [5]

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

Написал(-a) комментарий к произведению Ретро бит [5]

По-моему и так нормально, ГГ проявил вполне человеческую слабость, когда вспомнил нетривиальное решение и не подумал о более простом. Такое бывает. Keep It Simple Stupid принцип, хотя он слегка о другом.


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


В текущем виде у задачи есть очевидный педагогический смысл для студентов, причём аспирант ведь не рассчитывал на машину Даффа (её даже ещё не было). С множеством массивов разной длины задача потребует больше времени и кода на решение. А время за терминалами не резиновое. Разве что сама задача будет не абстрактной, а пример практических проблем на реальном коде, которые "профессор" решил продемонстрировать студентам, что-нибудь с обработкой текстов, например. Или даже та самая задача, которую Дафф решал. Это тоже может быть тогда интересно и в логике событий.


Между прочим, такой трюк плюс ещё и усовершенствование быстрой сортировки - это заявка, чтобы на Каналью обратили внимание весьма известные люди. В реале машина Даффа очень понравилась самому Ричи, а Страуструп её приводил как пример гибкости языка.

Написал(-a) комментарий к произведению Ретро бит [5]

Кстати, сейчас в голову пришло, что у меня проверка скорости работы разных алгоритмов не совсем правильная.  Надо было для единообразия и в наивном случае и с разверткой цикла использовать не индекс, а инкремент указателей.  Хотя все-равно в while индекс инкрементируется, а разница между инкрементом указателя на 1 и целочисленным сложением его с числом не факт, что вообще имеется сейчас.

Написал(-a) комментарий к произведению Ретро бит [5]

Ну в общем, в этой проде задачка показалась интересной, чтобы ее проверить. Заводить эмулятор pdp-11 не стал, но на современной системе эксперимент провел.  Три разных варианта в одной программе: наивный алгоритм (просто копирование), оптимизация с простым ручным разворотом цикла, оптимизация с Duff's device как в реале извратился инженер из Лукасфильма в 1983-м.  Проверил с компиляцией с оптимизацией и без. Программа копирует 4Гб данных по 4 байта (использован 32-битный int). Без оптимизации наивный алгоритм выполняется 1.8 сек, простая оптимизация разворотом цикла 1.04 сек., Duff's device - 0.98 сек.   С оптимизацией компилятором, наивно 0.22 сек., и по 0.37 сек. оба других алгоритма.  

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

Программу компилировал gcc в Linux (gcc copydata.c -std=c99 -O0 -o copydata без оптимизации и с -O3 с оптимизацией) , но вроде системно-специфического ничего нет. Должно заработать и в винде с msvc, если кто захочет в эмуляторе проверить, то надо будет вместо фиксированной битности использовать int и long, и копировать не 4 Гб, а наверное 512 Кб.
 Итак код программы (хотел убрать под спойлер, но движок сайта тогда глючит) :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>
#define N 1000000000LL
#define STEP 8

void print_execution_time(clock_t start, clock_t end)
{
   double cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
   printf("Execution time: %f sec\n", cpu_time_used);
}

void sum_and_print(int *mem)
/* checking the correctness of operation */
{
   size_t i;
   int64_t sum = 0;
   for (i=0; i<N; i++) sum+=mem[i];
   printf("sum = %lld, should be %lld\n",sum,(N-1)*N/2);
   /* Arithmetic progression sum */
}

int main()
{
   int32_t *src,*dst,*save_src, *save_dst;
   size_t i,base;
   clock_t start, end;
   
   src = malloc(N * sizeof(*src));
   dst = malloc(N * sizeof(*dst));
   if (src == NULL || dst == NULL) {
        printf("Memory allocated error!\n");
        return 1;
    }
   for (i=0; i<N; i++) {
      src[i]=i;
      dst[i]=1;/* allocate all RAM page  */
   }
   printf("Reserved %zu bytes\n",(sizeof(*src)+sizeof(*dst))*N);
   
     
   /* наивный подход */
   printf("Naive algorithm\n");
   
   start = clock();
   for (i=0; i<N; i++)
   {
     dst[i] = src[i];
   }
   end = clock();
   
   sum_and_print(dst);  
   print_execution_time(start, end);

   
   /* оптимизация за счет сокращения циклов */
   printf("Optimized algorithm\n");
   for (i=0; i<N; i++) dst[i]=0; /* clear dst */
   
   start = clock();  
   base = N - (N % STEP);
   for (i=0; i<base; i+=STEP)
   {
      dst[i]=src[i];
      dst[i+1]=src[i+1];
      dst[i+2]=src[i+2];
      dst[i+3]=src[i+3];
      dst[i+4]=src[i+4];
      dst[i+5]=src[i+5];
      dst[i+6]=src[i+6];
      dst[i+7]=src[i+7];/* STEP == 8 */      
   }
   for (i=base;i<N; i++)
   {
      dst[i] = src[i];
   }
   end = clock();
   sum_and_print(dst);  
   print_execution_time(start, end);
   

   
   
   /* Duff's device https://en.wikipedia.org/wiki/Duff%27s_device */
   printf("Duff's algorithm\n");
   for (i=0; i<N; i++) dst[i]=0; /* clear dst */  
   save_src = src; save_dst = dst;
   
   start = clock();
   base = (N + STEP-1) / STEP;
   switch (N % STEP) {
   case 0: do { *dst++ = *src++;
   case 7:      *dst++ = *src++;  /* STEP == 8 */
   case 6:      *dst++ = *src++;
   case 5:      *dst++ = *src++;
   case 4:      *dst++ = *src++;
   case 3:      *dst++ = *src++;
   case 2:      *dst++ = *src++;
   case 1:      *dst++ = *src++;
          } while (--base > 0);
   }
   end = clock();
   sum_and_print(save_dst);
   print_execution_time(start, end);
   
   
   free(save_src);free(save_dst);
   return 0;
}

Написал(-a) комментарий к произведению Ретро бит [5]

Правда даст. Я даже проверил на современной системе, но проверять надо без оптимизаций компилятора, с ними наоборот, duff's device - самый тормозной 😆 . Все же компиляторы за 40 лет зверски продвинулись в автоматической оптимизации

Написал(-a) комментарий к произведению Ретро бит [5]

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


Нормальная задача на понимание работы компилятора.


Раскрутку можно сделать, если просто в теле основного цикла копировать не один раз, а порциями по несколько и потом по окончании цикла добрать остаток. В отличие от duff's device, решение будет неэффективно на коротком цикле. Но для большой длинны копируемого неважно. А инженер Лукасфильма сумел круто извратиться, сделав универсально, запихнув все в одну довольно неочевидную конструкцию.


P.S. На современных компах и компиляторах, эту задачу надо компилировать с ключом/опцией отключения оптимизации компилятора. Иначе парадоксальным образом самое простое решение в лоб с копированием будет самым быстрым, а duff's device самым медленным вариантом.

Написал(-a) комментарий к произведению Ретро бит [5]

Скажу как читатель. Книга или нравится или не нравится. Если нравится - её читаю. Не нравится - не читаю. Все просто. Если нравится, могу на какие-то ошибки указать или что-то предложить для улучшения. 


Но какой смысл требовать от автора, чтобы он фактически другое произведение стал писать?


Кроме того, есть по объему форма рассказа, повести, романа - каждая форма означает и определённый подход и даже стиль. А есть фактически такая форма как сериал - там тоже свой подход. 

Написал(-a) комментарий к произведению Ретро бит [5]

Помню, да. На бешеный темп может уйти несколько сот килобаксов даже, но ему вот-вот начнут поступать деньги от продаж игр и на пару-тройку в пределах 10 килобаксов должно хватить.  Думаю разумно начать с алгоритмов сжатия информации. Жаль арифметическое кодирование уже запатентовали. Но можно еще успеть запатентовать LZW (1984-й год в реале) и алгоритм Jpeg (в реале 1987-й), а также такие варианты как фрактальное и вейвлет-сжатие. Правда в реале патент на базовый Jpeg (с DCT преобразованием) никому не мешал до 2000-х, а потом его аннулировали, когда попытались в 2002-м всех нагнуть, но для патентного пула подойдет.

Написал(-a) комментарий к произведению Ретро бит [5]

Мысль возникла.

Про патенты на алгоритмы речь уже заходила. Почитал кое-что, как на них еще Билл Гейтс жаловался в 80-е речь. Так вот, наверное по-хорошему, Крису надо начать их патентовать в бешеном темпе как припадочному. Нести  все что вспомнит из послезнания.

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

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

Написал(-a) комментарий к произведению Ретро бит [5]

Любопытный реликт 1991-го года. Книга без автора, была тогда в начале 90-х такая тенденция не указывать авторов у технических книг.  Полистал, книга явно переводная, но с чего именно затрудняюсь угадать. В приложении указаны недокументированные функции, так там Int 28h содержит ряд функций как раз для безопасной работы tsr, реализующие фактически что-то вроде мьютекса для синхронизации с int 21h и др. 

Написал(-a) комментарий к произведению Ретро бит [5]

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

Согласен, сейчас погуглил, нашел что в 1997-м году даже что-то такое появилось, называется Uzix, рассчитано даже на 64Кб 8-ми битки вроде спектрума.   То есть, технически было возможно, а может даже кто-то  и выпустил, но хорошо забылось.

Самое смешное, что таким однозадачным клоном Unix в некотором роде сама MS-DOS и является с версии 2.0. Там вполне сознательно в 1983-м очень много в API взяли из Unix, видимо были планы на портирование между DOS и Xenix.  Система вызовов в Int 21h почти полностью копировала юниксовый syscall.   Появились вполне в юниксовом духе дескрипторы файлов вместо FCB в 1.0, иерархическая система с каталогами, стандартные для Unix функции open/close/read/write и другие, пайпы и каналы ввода/вывода (stdin, stderr и др).   Управление процессами (Exec ) было аналогично Unix, имитировался даже fork с засыпанием родительского процесса.

Написал(-a) комментарий к произведению Ретро бит [5]

Для этого запрет прерываний есть, а в остальном согласен.

Извиняюсь за занудство, но DOS в обработчике не всегда запрещала прерывания (собственно даже не особо помню, чтобы она внутри сервисов это делала). А TSR, если активизировалась, то уже могла что-то прервать. 

Написал(-a) комментарий к произведению Ретро бит [5]

Да проблем с фоновой многозадачностью, особо, не было. Таймер давал 18,2 раза в секунду прерывания. Их можно было перехватывать. В перехватчике делать некие действия, передавать выполнение на перехваченный адрес. Там могла работать цепочка обработчиков. Главное, чтобы она сильно тормоза не создавала.

Проблема была не в том, чтобы на прерывание от таймера повесить свой обработчик, а в том, чтобы после этого система и программа, на фоне которой выполняется резидентная, работали корректно и не висли/не падали.  

Хватало тонкостей.  Например, не все функции DOS/BIOS было безопасно дергать изнутри TSR, особенно, если резидетных программ несколько было или необходимо было перехватывать не только таймер.  Там же не было нормальных мьютексов и семафоров и раздельной памяти. Прикладная программа вызывает функцию DOS/BIOS, в момент ее исполнения TSR активизируется, прерывает исполнение функции, и в свою очередь ее же вызывает. И? Если прерванная функция  не реентерабельная, то все могло закончиться плохо.

  Ещё у MS уже тогда была привычка не документировать некоторые важные функции API, хотя они широко использовались в их программах.

 Да и просто хватало багов в реализациях API и неточностей в описании - это уже безотносительно резидентности. Впрочем и сейчас хватает, но сейчас очень много информации можно найти в интернете, в том числе исходников и посмотреть как правильно что-то делать. А тогда часто только дебаггер в зубы.

Написал(-a) комментарий к произведению Ретро бит [5]

Притом сама по себе многозадачность была востребована, в каком-то калечном уродливом виде она была даже в ms-dos, не помню про версию 1.0, но уже со 2-й точно были резидентные программы, которые что-то на фоне могли делать.


Например, спулер печати print.com, позволявший запустить печать и не дожидаясь окончания (печать  на медленных матричных могла десятки минут и даже  часами идти, если что объемное) вернуться в ms-dos и работать на фоне.


Но там все плохо документировано было, нормальные tsr-программы стали появляться после того как print.com дизассемблировали и разобрались как он работает.

Написал(-a) комментарий к произведению Ретро бит [5]

Самое интересное, что в самом начале 80-х Билл Гейтс считал, что будущее за Unix. Microsoft тогда даже была разработчиком клона Unix - Xenix.  Но в 80-е Windows не побеждала Unix, виндой тогда очень мало кто вообще пользовался. Первой реально популярной версией стала только Win 3.0 в 1990-м году.  

К вашим аргументам я бы добавил, что ПК пользовательского класса и Unix тогда вообще были как бы в разных вселенных, считалось, что Unix - для серьезного железа и наоборот. То, что существовали отдельные варианты вроде Coherent или Minix картины не меняло. Даже Xenix отдельно не продавалась, ее поставляли для каких-то корпоративных поставок, обычно  с многопользовательскими серваками/рабочими станциями с несколькими терминалами.

Написал(-a) комментарий к произведению Ретро бит [5]

Ну нулевые, один хрен как-то так вышло, что только сейчас о ней узнал. Не то, чтобы я знаток игр был, но про более-менее известные/культовые хотя бы слышал, поэтому и удивился.

Написал(-a) комментарий к произведению Ретро бит [5]

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

Написал(-a) комментарий к произведению Ретро бит [5]

1C как бухгалтерская программа в основном популярна только в пределах РФ и некоторых других постсоветских республик. Из-за особенностей законотворчества, а не потому что не пустили куда-то. 

Написал(-a) комментарий к произведению Ретро бит [5]

В принципе, обычный QuickSort Хоара (т.н. быстрая сортировка) уже может впечатлить аспиранта, покажет, что студент реально разбирается и в алгоритмах и в программировании.

Если захочет выпендриться, напишет что-нибудь заведомо неизвестное в 1982-м году. Лишь бы сам ГГ знал :))  Например, Dual-Pivot Quicksort, который был придуман для Java Ярославским вместе с Бентли и Блохом в 2009-м году https://habr.com/en/companies/sberbank/articles/841342/   - суть в том, что в отличие от просто QuickSort используется разбиение не на две части с одним опорным элементом, а на три.  

Есть правда риск, что аспирант не оценит и решит, что туповатый ГГ просто напутал в реализации быстрой сортировки.  А вообще, чтобы просто по быстрому что-то написать лучше не выпендриваться, чем длинее и сложнее код, тем больше вероятность, что вот так на лету его записывая сам запутаешься.

Написал(-a) комментарий к произведению Ретро бит [5]

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

Написал(-a) комментарий к произведению Ретро бит [5]

ГГ тогда надо начать писать программы для рабочих станций. DECstation, Sun, SGI - как раз начало их рассвета.  А даже для PC, ну какие там медиаформаты они потянут? Трекерную музыку и gif-ки пока что только. Но рабочие станции - это уже более высокая лига

Написал(-a) комментарий к произведению Рок-звезда Советского Союза

Так ведь подписывались, просто лимиты появились в 75-77-м году (до этого не было), можно было успеть, если вовремя подсуетиться, в небольших населенных пунктах и вообще проблем могло не быть.  

Написал(-a) комментарий к произведению Рок-звезда Советского Союза

так и работать на массы. Так понятнее?

Если на массы, то он неизбежно вляпается в большую политику. Хочет или не хочет, но логика обстоятельств заставит. Или на каком-то этапе станет себя ограничивать в масштабе помощи.

 К примеру, спасти или не спасти Союз, но избежать развала страны и экономики, гибели людей (в том числе русских) в разных "конфликтах", вроде Чечни, предотвратив это все  - это помощь массам? Помощь. Но из аннотации похоже, что настолько масштабной помощью он даже пытаться заниматься не станет.  Я об этом противоречии.

Написал(-a) комментарий к произведению Ретро бит [5]

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

Наверх Вниз