dasel

Dec. 23rd, 2025 05:50 pm
vak: (Default)
[personal profile] vak
Если вам приходится возиться с данными в разных форматах, вот удобная утилита: dasel. Умеет читать-писать JSON, YAML, TOML, XML, CSV, HCL, INI. К примеру, преобразуем json в toml для прикола.
$ echo '{"foo": {"bar": "baz"}}' | dasel -i json -o toml
[foo]
bar = 'baz'
Ставится это дело командой "brew install dasel" на маке или "sudo apt install dasel" в Линуксе.

Sound Galaxy NX Pro 16 Extra

Dec. 23rd, 2025 09:50 am
vak: (Знайка)
[personal profile] vak
В составе компьютера Cx486 приехала вот такая звуковая карточка. Полное название Sound Galaxy NX Pro 16 Extra (MMSN812). Крутая считалась в начале 90-х. Был такой стартап Aztech в Сингапуре, клепал чипсеты для звуковых карт. Изначально IBM проигнорировала звук при разработке PC, и на этой теме развилась целая отрасль дополнительных карточек. На плате имеются порты для подключения CD-ROM разных производителей. В то время разные драйвы CD-ROM имели несовместимые интерфейсы, и не умели IDE/ATAPI.

Софт для DOS можно скачать по ссылке: dosdays.co.uk/topics/Manufacturers/aztech_downloads.php#NXPro16

Есть некий драйвер в Линуксе, не уверен, к этой ли модели: torvalds/linux/sound/isa/galaxy/galaxy.c



Centon 2Gb Industrial

Dec. 23rd, 2025 09:21 am
vak: (Знайка)
[personal profile] vak
Индустриальная SD карточка, на которую я поставил NetBSD 10.1 для компьютера Cx486. Сделано в Тайване.

Меньше 2 гигабайт нет смысла брать: юниксу тесновато будет. А больше 2 гиг индустриальные карточки заметно дороже обходятся.


pargentum: (Default)
[personal profile] pargentum
в Крыму интернет будет ограничен «до конца СВО»
pargentum: (Default)
[personal profile] pargentum
Дыра в канале.

Тем не менее, вполне реальный случай:
https://www.bbc.com/news/articles/c2lvq0yk9dko
vak: (Daemon)
[personal profile] vak
В ядре NetBSD есть хитрый параметр "options CYRIX_CACHE_WORKS". Если его поставить, ядро включит L1 кэш процессора Cyrix. И оно действительно помогло. Дуремарки заметно поднялись: 54 супротив прежних 31. Хотя до досовских 110 далеко.
DureMark 1.0 Results
=======================
Iterations      : 300
Execution Time  : 5.5 sec
List Workload   : 39.4%
Matrix Workload : 19.2%
State Workload  : 41.4%
-----------------------
Total Score     : 54.25 DureMark
Путь был непростым, однако. Чтобы изменить параметр, надо пересобрать ядро. Проделать это на самом компьютере не представляется возможным. Без кэша он настолько тормозной, что пересборка займёт месяц. Следовательно, надо ставить ровно такую же версию NetBSD на виртуальную машину.

До сих пор я возился с NetBSD версии 4.0.1, выпуска 2008 года. Более поздние не лезут в 16 мегабайт памяти. Но эта версия давно не поддерживается, и пакеты к ней я надыбал только на bitsavers.org. При отсутствии пакетов на официальном сайте установка полноценной системы, нужной для сборки ядра, превращается в головоломку с неизвестным исходом.

Нужна свежая версия NetBSD 10.1, а значит необходимо добавить памяти в компьютер. Четыре восьмибитных SIMM, если помните. В пятницу память пришла с Ебея, заодно пришла и 2-гигибайтная SD карточка industrial. Установка системы на неё заняла всю субботу.

Возиться с флопиками необязательно. Чтобы запустить установку, надо под ДОСом скачать два файла: dosboot.com и netbsd-INSTALL.gz. Второй файл распаковать под именем install и вызвать "dosboot install". Остальное будет подгружаться по сети, благо сетевая карточка NE2000 настроена и работает. Процесс установки подробно описан в главе №3 "Example installation" документа netbsd-en.pdf.

Установка шла медленно и печально, ведь кэш пока не работает. Параллельно я поставил эту же версию NetBSD на мак под симулятором UTM (обёртка над QEMU). Пришлось напрячься, изучить файл конфигурации ядра, чтобы убрать всё ненужное, но не зацепить чувствительное. Благо, можно начать с имеющейся конфигурации GENERIC_TINY. Вот такое получилось.
Я прямо как в молодость вернулся: те же самые ощущения, что 32 года назад, когда я возился с конфигурациями и исходниками ядра FreeBSD. 😀

Компилируем ядро под NetBSD 10.1 в виртуальной машине, после чего записываем на досовскую SD карточку, где в файлe AUTOEXEC.BAT командой dosboot оно и грузится. Дешёво и сердито.

Забавная вышла ситуёвина. Допотопный компьютер с 5-дюймовым флоповодом, отстойнейшим процессором Cyrix 486, и на нём распоследний юникс NetBSD.

juan_gandhi: (Default)
[personal profile] juan_gandhi

Я так вижу, среди моих собеседников на фесбуке в гениях числятся Булгаков да, похоже, Стругацкие.
Так понимаю, что ещё они читали Курочку Рябу, и больше всё. Ну, может быть, Ле Гуин, что ли.

С музыкой та ж фигня, мне кажется; в великие композиторы записаны Меркури и БГ. Ну, может быть, ещё Равель, у него Болеро годится как аккомпанемент к сексу.

Эх. Прохладнее бы надо ко всему этому.

pargentum: (Default)
[personal profile] pargentum
в России было принято много инструментов поддержки индивидуального предпринимательства и малого бизнеса, однако в последнее время эти формы бизнеса стали использоваться для бесконтрольного завоза серого и черного импорта, что стало проблемой

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

Unix v4

Dec. 21st, 2025 12:08 pm
vak: (Default)
[personal profile] vak
Народ восстановил с древней ленточки юникс версии 4 для pdp11.


В частности, имеются исходники Снобола 1974 года.
$ cd /usr/sno
$ ls -l
total 1
-rw-r--r--  1 vak  staff   338 Jun 10  1974 sno.h
-rw-r--r--  1 vak  staff  6280 Jun 10  1974 sno1.c
-rw-r--r--  1 vak  staff  7723 Jun 10  1974 sno2.c
-rw-r--r--  1 vak  staff  3644 Jun 10  1974 sno3.c
-rw-r--r--  1 vak  staff  4176 Jun 10  1974 sno4.c

Фраза. Просто фраза

Dec. 21st, 2025 09:49 pm
pargentum: (Default)
[personal profile] pargentum
Советские энтузиасты, а также любые идеалисты забыли, что процветание заканчивается гедонизмом.
pargentum: (Default)
[personal profile] pargentum
Есть время пообкатать версии рассказа на разных пациентах

В Питере появились бригады дворников из Индии, и один из них рассказал, что раньше работал программистом и занимался разработкой ИИ.
vak: (Житель планеты Узм)
[personal profile] vak
Появилась забавная утилитка для возни с юникодными символами. Ставится командой:
go install zgo.at/uni/v2@latest
К примеру, найдём все символы с котиками.
$ uni search 'cat '
             Dec    UTF8        HTML       Name
'🐱' U+1F431 128049 f0 9f 90 b1 🐱  CAT FACE
'😸' U+1F638 128568 f0 9f 98 b8 😸  GRINNING CAT FACE WITH SMILING EYES
'😹' U+1F639 128569 f0 9f 98 b9 😹  CAT FACE WITH TEARS OF JOY
'😺' U+1F63A 128570 f0 9f 98 ba 😺  SMILING CAT FACE WITH OPEN MOUTH
'😻' U+1F63B 128571 f0 9f 98 bb 😻  SMILING CAT FACE WITH HEART-SHAPED EYES
'😼' U+1F63C 128572 f0 9f 98 bc 😼  CAT FACE WITH WRY SMILE
'😽' U+1F63D 128573 f0 9f 98 bd 😽  KISSING CAT FACE WITH CLOSED EYES
'😾' U+1F63E 128574 f0 9f 98 be 😾  POUTING CAT FACE
'😿' U+1F63F 128575 f0 9f 98 bf 😿  CRYING CAT FACE
'🙀' U+1F640 128576 f0 9f 99 80 🙀  WEARY CAT FACE
А теперь эмодзи.
$ uni emoji ' cat'
	Name                             CLDR
😺	grinning cat                    [animal, face, mouth, open, smile, smiling]
😸	grinning cat with smiling eyes  [animal, face, smile]
😻	smiling cat with heart-eyes     [animal, face, love, smile]
😽	kissing cat                     [animal, closed, eye, eyes, face]
🙀	weary cat                       [animal, face, oh, surprised]
😿	crying cat                      [animal, face, sad, tear]
😾	pouting cat                     [animal, face]
🐈‍⬛	black cat                       [animal, feline, halloween, meow, unlucky]

$ uni emoji 'cat '
	Name                             CLDR
😸	grinning cat with smiling eyes  [animal, face, smile]
😹	cat with tears of joy           [animal, face, laugh, laughing, lol]
😻	smiling cat with heart-eyes     [animal, face, love, smile]
😼	cat with wry smile              [animal, face, ironic]
🐱	cat face                        [animal, kitten, kitty, pet]
vak: (Daemon)
[personal profile] vak
Пользуясь новым тулом, продуремарим процессор на старом 486-м компьютере. Напомню, что там запаян Intel 486sx и отдельно втыкается "ускоритель" Cyrix 486dx.



Запускаем MS-DOS на Cyrix 486dx2-66, и под ним DUREMARK.EXE.
DureMark 1.0 Results
=======================
Iterations      : 1000
Execution Time  : 9.1 sec
List Workload   : 44.0%
Matrix Workload : 30.1%
State Workload  : 25.9%
-----------------------
Total Score     : 109.64 DureMark
Меняем процессор на Intel 486sx-25.
DureMark 1.0 Results
=======================
Iterations      : 300
Execution Time  : 5.2 sec
List Workload   : 31.9%
Matrix Workload : 39.4%
State Workload  : 28.7%
-----------------------
Total Score     : 58.09 DureMark
Разница почти в два раза. Хорошо, вернём Cyrix на место и запустим на нём NetBSD.
DureMark 1.0 Results
=======================
Iterations      : 100
Execution Time  : 3.2 sec
List Workload   : 40.1%
Matrix Workload : 17.6%
State Workload  : 42.3%
-----------------------
Total Score     : 31.35 DureMark
Удивительное дело: скорость процессора упала в три раза. Подтверждается моя догадка, что NetBSD отключает кэш Сайрикса. Вероятно, во избежание каких-то глюков.

Ну ничего, я заказал на Ебее родной интеловский 486dx2-66, сравним под NetBSD.

Зимняя геометрия

Dec. 20th, 2025 03:19 pm
vak: (Бах)
[personal profile] vak
Нету снега в Калифорнии? Не беда! Давайте печатать снежинки на 3D принтере.

Генератор снежинок: github.com/drom/neghero

Онлайн можно поиграться здесь: observablehq.com/@drom/neghero




Дуремарк

Dec. 20th, 2025 12:28 am
vak: (Знайка)
[personal profile] vak
Чтобы иметь возможность сравнивать производительность 8-битных и 16-битных процессоров с большими, я сварганил на скорую руку простой бенчмарк. Он качественнее чем Dhrystone: не просто вычисляет некие формулы, а работает со списками, множит матрицы, парсит грамматику. Идея подсмотрена у CoreMark, но упрощена до предела. Допускается размер int 16 бит, так что можно компилировать с помощью Turbo C. Скорость я калибровал по PC XT, так что один DureMark примерно равен классической XT-шке 4.77 МГц. Вот пример запуска на такой XT-шке:
DureMark 1.0 Results
=======================
Iterations      : 10
Execution Time  : 9.3 sec
List Workload   : 37.1%
Matrix Workload : 34.1%
State Workload  : 28.8%
-----------------------
Total Score     : 1.07 DureMark
Кроме общей производительности, показывается, какой вклад вносит каждый из трёх задействованных алгоритмов: работа со списками, работа с матрицами и машина состояний.

Тестирование начинается с малого числа итераций, и оно экспоненциально растёт до достижения разумной длительности (несколько секунд). Вот запуск на iMac Intel Core i9 3.6 GHz.
$ duremark
Try 3 iterations...
Try 10 iterations...
Try 30 iterations...
Try 100 iterations...
Try 300 iterations...
Try 1000 iterations...
Try 3000 iterations...
Try 10000 iterations...
Try 30000 iterations...
Try 100000 iterations...
Try 300000 iterations...
Try 1000000 iterations...

DureMark 1.0 Results
=======================
Iterations      : 1000000
Execution Time  : 6.7 sec
List Workload   : 45.8%
Matrix Workload : 11.7%
State Workload  : 42.5%
-----------------------
Total Score     : 149349.25 DureMark
Исходники: github.com/sergev/duremark

Теперь предстоит перемерять всю мою коллекцию компьютеров.
pargentum: (Default)
[personal profile] pargentum
Изучал хадисы и занимался криптотрейдингом

Ой

Dec. 20th, 2025 12:15 pm
pargentum: (Default)
[personal profile] pargentum
https://nplus1.ru/news/2025/12/19/rats-play-doom-in-vr

Угу. А потом ее посадят в дрон и пошлют стрелять повстанцев.
Помнится пытались делать систему самонаведения для ракет по такому принципу, только вместо крысы голубя сажали.
pargentum: (Default)
[personal profile] pargentum
В фотоархиве Эпштейна нашли фотографии людей в российской военной форме
Page generated Dec. 24th, 2025 03:09 am
Powered by Dreamwidth Studios