TeleBolkNote
183 subscribers
1.46K photos
4 videos
1.6K links
Моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь, большие языковые модели и программирование. Совпадает с сайтом bolknote.ru
Download Telegram
Электрическая типография
Евгений Степанищев (RSS)

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

Один из листков заставил улыбнуться — он напечатан в «электрической типографіи Л. П. Антонова» и это сильно напоминает проект «Электрический издательский дом», который мы как-то пытались запустить вместе с моим другим другом Василием Балакиным. Я про него тоже недавно писал.

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

Вряд ли существовали электрические издательства, но вот типографии, как я сегодня узнал, — вполне. В противоположность механическим, я думаю.

https://bolknote.ru/all/elektricheskaya-tipografiya/
👍1
Чтение по губам
Евгений Степанищев (RSS)

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

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

Единственное, что мне было непонятно — почему мой уровень тогда застопорился, неужели тут есть какой-то секрет?

И лишь недавно, в сериале «Убийства в одном здании» мне попалась разгадка. Там один парень, глухонемой, который общается жестами, говорит в один момент, что глухие, читая по губам, улавливают примерно треть произносимого, остальное достраивают по контексту или вовсе упускают.

https://bolknote.ru/all/chtenie-po-gubam/
👍2
Пытаюсь достать The Sensor Watch
Евгений Степанищев (RSS)

Пытаюсь заполучить себе The Sensor Watch. Напомню, это платка с возможностью программирования, которая вставляется в классические часы «Касио».

«Донора» мне уже подарила жена на день рождения, осталось дождаться этой самой части, которую в него надо будет вставить.

Пытался достать её через пересыльные сервисы  — например, через горячо любимую «Бандерольку», которой я пользуюсь уже больше пяти лет, но не получилось из-за санкций.

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

https://bolknote.ru/all/pytayus-dostat-the-sensor-watch/
👍1👾1
У вас голова не кружится?
Евгений Степанищев (RSS)

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

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

Это было много лет назад, мы с женой гуляли в Москве по ВДНХ и в одном из павильонов увидели кое-что необычное. Рекламировался массаж от электрической массажной кровати. Это сейчас каких только массажёров нет, а тогда они были в диковинку. Мы из интереса попробовали и пошли дальше.

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

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

https://bolknote.ru/all/u-vas-golova-ne-kruzhitsya/
Эффект Манделы
Евгений Степанищев (RSS)

Одна из самых забавных вещей, с которыми я когда-либо сталкивался, это, конечно, эффект Манделы.

Эффект Манделы — это когда несколько людей независимо друг от друга помнят что-то, чего на самом деле не было. Например, что Ельцин говорил по телевизору «я устал, я ухожу» (не говорил) или что в «Песенке про пять минут» есть слова «это много или мало» (нету).

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

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

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

Кадр из кинофильма «Карнавальная ночь» (1956), где Гурченко поёт песню «Пять минут»

Недавно я опять столкнулся с этим эффектом в чьём-то посте — там обсуждалось стихотворение «Узник», начальные строки из которого все, наверное, помнят ещё со школы:


Сижу за решеткой в темнице сырой.

Вскормленный в неволе орел молодой,

Мой грустный товарищ, махая крылом,

Кровавую пищу клюет под окном...


Так вот, я, как и многие в комментариях к тому посту, был уверен, что стихотворение написал Лермонтов, тогда как на самом деле его автор — Пушкин.

https://bolknote.ru/all/effekt-mandely/
Замена цифр
Евгений Степанищев (RSS)

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

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

А сегодня мне пришло в голову решение лучше — попробовать обойтись функцией «Замены текста», которая встроена в «МакОСь». Мысль простая — заменять двоеточие и две цифры на то же самое, но без двоеточия и в верхнем индексе. Сначала я пытался набрать всё нужное руками, а потом случайно нашёл функцию импорта.

Формат для импорта оказался довольно простым. После того как я в нём разобрался, накидал небольшую программу на «Пайтоне», которая мне за мгновение сформировала нужный файл.

print("""
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>""")

trans = str.maketrans("0123456789", "⁰¹²³⁴⁵⁶⁷⁸⁹")

for i in range(0, 60):
print(f"""
<dict>
<key>phrase</key>
<string>{f"{i:02d}".translate(trans)}</string>
<key>shortcut</key>
<string>:{i:02d}</string>
</dict>""")

print("</array></plist>")
Чтобы его импортировать, нужно перейти в «Системные настройки...», оттуда в  «Клавитуру», там нажать на кнопку «Замены текста...» и перетащить на открывшийся список получившийся файл.

После этого можно проверить что получилось, — если написать в любом месте «13:00», оно должно само преобразоваться в «13⁰⁰».

https://bolknote.ru/all/zamena-cifr/
UTM
Евгений Степанищев (RSS)

Люблю посмотреть на программы далёкого прошлого.

Недавно увидел статью, где рассказывалось об эмуляторе, позволяющем запустить операционную систему компьютеров Three Rivers PERQ, — их выпускали в начале восьмидесятых. Я их никогда не видел, даже не слышал про них ничего, поэтому взглянуть особо интересно.

Внешний вид компьютера из брошюры «PERQ. The powerful, scientific, graphics computer» (декабрь 1981 года)

К сожалению, первая попытка провалилась — эмулятор не заработал на моём «Макбуке» (думаю потому, что у меня ARM). Я не сдался — попробовал виртуализировать «Винду» и запустить его там, но и тут меня ждал неуспех. Теперь я решил скачать эмулятор x86, запустить «Виндоуз» там. Это уже третий подход к снаряду.

Как это сделать я не знал, поэтому пришлось гуглить. Из того, что быстро нашлось, мне понравилась программа UTM (это обёртка над QEMU). Поставилось всё без нерешаемых проблем, единственное, в одном месте инструкцию по установке пришлось скорректировать:

brew install aria2

brew tap minacle/chntpw
brew install cabextract wimlib cdrtools minacle/chntpw/chntpw

sh uup_download_macos.sh
Я поставил chntpw из другого источника, так как версия из оригинальной статьи падала в процессе установки с ошибкой — после компиляции одной из зависимостей она не проходила тесты.

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

https://bolknote.ru/all/utm/
Three Rivers PERQ
Евгений Степанищев (RSS)

Ура! Несмотря на все сложности, мне всё-таки удалось запустить эмулятор PERQ, про который я писал вчера.

Тот момент, когда я увидел наконец рабочий интерфейс этого компьютера на экране своего современного «Макбука», вызвал непередаваемые чувства. Будто я подключился к историческому континууму и снова очутился в том времени, когда компьютерные системы только начинали приобретать современные очертания.

Эмулятор компьютера Three Rivers PERQ в «Видоуз», запущенном в эмуляторе компьютера с процессором Intel

Что же мы имеем после запуска?

В системе доступно всего несколько команд, список которых можно посмотреть, набрав ?. Среди них есть знакомые ls, cd и понятная edit. На скриншоте как раз видно как я вызвал на редактирование программу на Паскале, которая лежит в домашней папке. Рядом лежит скомпилированный бинарник, но программу можно скомпилировать и самостоятельно.

Экран у системы вертикальный, это было заметно ещё на том снимке рабочей системы, который я публиковал вчера. Судя по спецификации, разрешение экрана — 1024×768 точек. В брошюре записано именно в таком порядке, хотя как будто бы должно быть указано наоборот, — 768×1024.

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

Ещё из интересного — компьютер комплектовался восьмидюймовым дисководом со скоростью передачи 62,5 килобайт в секунду. Я такие дисководы живьём не видел, но дискеты этого размера в руках держал — папа в моём детстве приносил с работы списанные, я их передал в музей техникума, где тогда учился.

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

https://bolknote.ru/all/three-rivers-perq/
👍2
Одноглазый Дисплей
Евгений Степанищев (RSS)

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

Я не фанат конного спорта, поэтому просто прогулялся рядом. Пока гулял, заметил, что у коня жены, гнедого Дисплея, что-то не то с левым глазом.

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

И вот в одном из таких боёв Дисплей получил копьём в глаз. Рана давно зажила, но, судя по состоянию глаза, если он им что-то и видит, то чрезвычайно плохо. Очень жалко коня.

Дисплей и Дакота везут моих девочек на прогулку

https://bolknote.ru/all/odnoglazy-displey/
Тёмная и светлая темы
Евгений Степанищев (RSS)

Теперь, надеюсь, никто не будет говорить, что тёмная и светлая темы — это какая-то новая мода?

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

И, читая встроенное руководство, обратил внимание, что при логине можно указать цветовую тему, с которой будет работать система — режим чёрного на белом или белого на чёрном.

Выбор происходит командой LOGIN /CursorFunction=5.Тут «5» как раз означает, что надо выбрать «тёмную». И это в 1982-м году, судя по тому что написано в верхнем правом углу!

Тёмная и светлая темы в операционной системе компьютера PERQ

https://bolknote.ru/all/tyomnaya-i-svetlaya-temy/
Редактор в PERQ
Евгений Степанищев (RSS)

Поскольку я всё ещё не оставил идею написать «Песню о пиве» на местном Паскале в эмуляторе персонального компьютера PERQ, осваиваю тамошний редактор. С той скоростью эмуляции, которую выдаёт мой ноутбук, редактирование выглядит очень печально, но деваться некуда, — поскольку в процессе написания кода возникли совершенно неожиданные для меня ошибки, пришлось учиться редактировать код.

Двигаюсь с черепашьей скоростью.

Нерабочая программа в процессе редактирования

Редактор очень похож на знаменитый vi. Как и в vi, тут присутствуют два режима — набора текста и команд. Правда большинство команд другие, но некоторые точно такие же. Например, надо нажать Q, чтобы выйти.

Очень удобно, что некоторые команды написаны прямо вверху окна редактирования — это I (вставка), D (удаление), F (поиск), R (замена) и S (замена выделенного).

Как видите, если знать английский, то запомнить их элементарно.

Все команды работы с текстом работают c выделенным участком. Например, чтобы удалить какой-то кусок текста, его надо сначала найти в редакторе командой F (или выделить другим способом, коих масса), а потом нажать D.

Учится всё это очень быстро, мне понравилось. Единственное, к чему пришлось привыкать дольше — ввод параметров для команд завершается клавишей Escape, а не Enter. Это, по всей видимости, сделано для того, чтобы можно было работать с многострочными участками текста.

https://bolknote.ru/all/redaktor-v-perq/
👍2
«99 бутылок пива» на PERQ Pascal
Евгений Степанищев (RSS)

Мои читатели знают, что последние несколько дней я возился с эмулятором PERQ. PERQ — это персональный компьютер, выпускавшийся в начале 1980-х годов, первый коммерчески успешный ПК с графическим интерфейсом. Такой олдскул мил моему сердцу, поэтому я потратил несколько вечеров, чтобы попробовать хоть на базовом уровне разобраться что из себя представляла операционная система тех компьютеров.

Последние пару дней я пытался написать на тамошнем «Паскале» «песню о пиве», но поскольку на моём ноутбуке потребовалась двойная эмуляция, скорость работы встроенного в систему редактора была ниже плинтуса. Писать было очень сложно, а править ошибки — ещё сложнее. Тем не менее, я справился.

79. PERQ Pascal — диалект некогда широко распространённого в учебных учреждениях языка «Паскаль». Компилируемый язык, в какой-то степени можно назвать его конкурентом Си, которому он проиграл вчистую.

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

{$MESSAGE Written by Evgeny Stepanischev, 2024}
PROGRAM BOTTLES_OF_BEER;

const
MAX_BOTTLES = 99;

Function BotStr(count: integer): string;
begin
if count = 1 then
BotStr := ' bottle of beer'
else
BotStr := ' bottles of beer';
end;

Procedure SingSong;
var
i: integer;
b: string;
begin
for i := MAX_BOTTLES downto 1 do
begin
b := BotStr(i);
writeln(i:0, b, ' on the wall,');
writeln(i:0, b, '!');
writeln('Take one down, pass it around,');
if i > 1 then
begin
b := BotStr(i-1);
writeln((i - 1):0, b, ' on the wall!')
end
else
writeln('No more bottles of beer on the wall!');
writeln;
end;

writeln('No more bottles of beer on the wall,');
writeln('No more bottles of beer!');
writeln('Go to the store and buy some more,');
b := BotStr(MAX_BOTTLES);
writeln(MAX_BOTTLES:0, b, ' on the wall!');
end;

begin
SingSong;
end.
Из того, с чем мне пришлось столкнуться, когда я писал программу.

Больше всего ушло времени на ошибку Error 116: Error in type of standard procedure parameter. Речь тут, вроде, идёт о том, что я какой-то процедуре передаю параметры не того типа. Несмотря на то, что в ошибке был указан номер строки, мне всё равно не удавалось понять, что я делаю не так.

Оказалось, что вызов функции BotStr нельзя напрямую поместить во writeln, надо обязательно использовать промежуточную переменную (у меня это b). Учитывая, что скорость работы с эмулятором не позволяет быстро попробовать разные варианты, пришлось изрядно поскрипеть мозгом, чтобы дойти до сути.

Вторая вещь оказалась проще для исправления. В этом диалекте «Паскаля» вывод чисел происходит с отступом. В моём случае выглядит это неаккуратно. К счастью убрать его просто — нужно добавить параметр :0 для каждого числа, выводимого на экран.

В какой-то момент я так устал редактировать код со скоростью улитки, стал использовать обычный редактор своего ноутбука. Потом я просто запускал небольшую программу, написанную на «Пайтоне», которая печатала код за меня прямо внутрь окна с эмулятором PERQ:

import pyautogui, time

FILE_PATH = '99.pas'

time.sleep(5)

with open(FILE_PATH, 'r') as file:
for line in file:
for x in line.lstrip():
pyautogui.typewrite(x)
time.sleep(.6)

time.sleep(1)
Вчера ночью всё наконец запустилось и я смог посмотреть как работает моя первая (и наверняка единственная) программа для PERQ.

Кстати, вот ещё одна интересная деталь.

Чтобы получить исполняемый файл, надо исходный код программы сначала скомпилировать командой COMPILE в объектный файл (.SEG), потом скомпоновать командой LINK в исполняемый (.RUN). У обеих команд есть параметр, где указывается имя файла, с которым мы работаем.

Но если мы открывали на редактирование какой-то файл,
🔥1