Pull to refresh
145
21.9
Руслан @checkpoint

Old-time Unix hacker

Send message

Всё, что ученым нужно для обнаружения внеземного разума это Конденсатор Потока.

Этот прибор, кстати, уже давно и недорого продается на oreilyauto.com, изготавливается по оригинальным чертежам доктора Эмметта Брауна. Все кто в теме уже давно приобрели и установили на свой Делориан.

Поздравляю, Вы попали в рекурсию.

Последний раз Lisp попадался мне в руки еще будучи студентом в конце 90-х, писал на нём курсовую по Теории Надежности Систем. Тогда у нас ходил забавный прикол: Интерпретатор Lisp-а на Prolog-е который написан на Lisp-е. Что-то типа вот этого, только в обе стороны.

Lisp и Prolog - феноменальные языки. Очень жалею, что не удилил им должного внимания на своём жизненном пути.

Появилась видеозаметка про прошедший недавно в Питере Chaos Constructions 2024.

Уж не намекаете ли Вы на то, чтобы зарегистрировать Хабр в ВАК ? ВАКовские публикации никто не читает именно по причине их полной бесполезности, бессмысленности и беспощадности. Как только Хабр зарегистрируют в ВАКе он тут же превратится в большую свалку бредогенераторов - сюда хлынут все эти "ученые мужи" со своими семиэтажными формулами в которых кроме их самих никто не разбирается, а порой и даже они сами ничего не смыслят в том, о чем пишут. ВАК это профанация науки! Так что прошу Вас, не надо!!!

То есть получается, что для получения абсолютно точного ответа для "двух разрядной задачи Винтика-Шпунтика" нам потребуется выполнить 1 миллиард раз по 1-му миллиарду шотов ? Эээ.. сколько там говорите дается кредитов ?

Даже если вероятность прохождения отдельных фотонов увеличить до девятого знака после запятой (что просто не реально), симулятор всё равно даст ответ гораздо быстрее и точнее. Так простите какой в этом практический смысл ?

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

Ну это как в известном фильме:

— Кузьмич, ты что, финский усвоил?

— В смысле?

— Ну, он же по-фински разговаривает.

— Кто по фински разговаривает?

— Ну, он же — финн!

— Кто финн?

— Я!

Мы все друг друга поняли, просто захотелось почесать языками. :)

Добавил еще пару вариантов и выложил на Github: https://github.com/pointcheck/generated_music

Вот, состряпал на скорую руку по мотивам одного из видео. Только для FreeBSD:

Генерация звука для демки
% cat test1.c
#include <stdio.h>
#include <stdlib.h>

char *dsp_dev = "/dev/dsp1.0";

int main(int argc, char *argv[]) {
	int samples = 1000000;

	if(argv[1])
		samples = atoi(argv[1]);

	FILE *dsp = fopen(dsp_dev, "a+b");
	
	if(!dsp) { 
		perror("fopen");
		return -1;
	}
 
	for(int t=0;samples;t++,--samples)
		fputc((t&t%255)-(t*3&t>>13&t>>6), dsp);

	return 0;
}

% cc -o test1 test1.c
% ./test1

После установки dnload.py и запуска ./release.sh получил следующие бинари:

Эти финские парни отморожены на обе головы. Побольше бы таких. :)

Короче, вся магия находится в dnload.py который вызывается из скрипта ./release.sh.

dnload.py - Minimal binary generator for *nix operating systems.

Прямо бальзам на душу старого фрюховода. ;)

Из кода видно, что демка устанавливает режим 13h (VGA 320x240) через Int 10h и потом пишет в область памяти на которую указывает пара DS:BX, при этом предварительно инициализирует её командой lds bx,[bx]. Я немного потрассировал прогу в отладчике AFD.EXE. Пара DS:BX до инициализации ссылается на нулевую ячейку сегмента кода, после загрузки DS:BX становится равным 9FFF:20CD. Учитывая что в реальном режиме у нас всего 20-ти битные адреса, то получаем адрес 0xA20BD который случайным образом попадает в область видеопамяти, она начинается с 0xA0000 (или A000:0000). Далее идет приращение BX по непонятному алгоритму.

У меня в ноуте две видюхи с ускорителем: встроенная в Ryzen5 (amdgpu) и дискретная Nvidia RTX 3050. Демка ghosts_of_mars запускается на обеих картах, качество графики и динамика одинаковая. Возможно, что на Nvidia число FPS будет поболее, но на глаз это не оценить.

Демка ghosts_of_mars на FreeBSD 13.3 и встроенной amdgpu

Демка ghosts_of_mars на FreeBSD 13.3 и Nvidia RTX 3050

Я пробовал натравить strip с этими параметрами на ghost_of_mars, но это не дало результата - размер файла остался прежним и составил 1285472 байта. Я загляну в него readelf-ом и увидел, что размеры секций .text и .rodata составляют 943762 и 129328 байт соответвенно. Эти секции, как Вы понимаете, удалить из эльфа не выйдет. Единственное что с ними можно сделать это сжать каким нибудь алгоритмом, но это должен быть суперэффективнй алгорим, чтобы из 1073090 байт получить исполняемый файл размером не более 4096 байт. Короче, вопрос "почему демки из компо 4K into имеют размер бинарника более мегабайта" для меня остался нераскрытым.

PS: Утилита компрессии исполняемых файлов upx под Фрю есть в пакеджах, но с фрюшными эльфами работать отказывается, пишет UnknownExecutableFormatException.

Это не совсем так. Модель как правило уже рассчитана заранее и захардкожена, а функцией на неё наращивается мясо и производятся всяческие трансформации над ней. Можно конечно исходную модель рассматривать как комплексный набор исходных параметров функции, если Вы настаиваете. :)

Да, это была обычная телефонная сеть, только ведомственная и без выхода в ТфОП.

Кстати, финские демки у меня тоже собрались в бинарь обьемом более мегабайта, хотя они заявлены как 4k intro. Не представляю каким способом такой бинарь можно ужать до 4К. strip уже сделан, отладочной инфы в эльфе нет.

Недавно узнал, что есть целая виртуальная демосценерская консоль TIC-80, её тоже на Луях...

Большое спасибо за статью. Всё попробовал, покомпилял и посмотрел на FreeBSD 13.3-RELEASE на ноутбуке Lenovo. Вставлю свои пять копеек.

  1. Ghosts of Mars собралась и чудесно работает, графика отпадная. Использует встроенную видюху (amdgpu).

  2. Yog-Sothoth при работе выдает в stdout текст шейдеров на языке GLSL и статистику их компиляции - весьма интересно.

  3. SDL отпадная ультра-кроссплатформенная и весьма минималистичная библиотека для всякой графики и звука. Но для приложений лучше использовать более современный её вариант - SDL2. Она поддерживает Vulkan и прочие фишки современных акселераторов, при этом остается такой же минималистичной в плане зависимостей. Правда из неё убраны некоторые совсем уж архаичные платформы (Atari MiNT, AmigaOS, Windows 95, BeOS, MacOS9).

  4. БК как и Atari - компы моего детства. Рад, что кто-то продолжает для них кодить. Последнее что я видел для БК это Good Apple.

  5. В 90-х я тоже немного баловался с написанием демок и занимался code bumping-ом (оптимизацией кода на асме с целью уталкивания в заданные размеры). Мой рекорд был 97 байт .COM файл отрисовывающий множество Жюлиа. Но dirojed.com просто убил меня. Убил и сьел! 32 байта это как ? При этом оно еще умудряется опрашивать клавиатуру (in al,60h). Вот все 15 ассемблерных команд этого шедевра:

C:\>2ASM.EXE DIROJED.COM

PS: Всем нашим маленьким коллективом этим августом побывали на Chaos Constructions 2024 в Питере - демок и аппаратуры было мало, организация была слабой, но всё равно мы вернулись довольные. :-)

1
23 ...

Information

Rating
315-th
Date of birth
Registered
Activity